我在解析json字符串时遇到问题。
这是字符串(问题部分):
{
"type":"meaning",
"terms":[
{
"type":"text",
"text":"some value.",
"language":"ru"
},
{
"type":"url",
"text":"\x3ca href\x3d\x22http://readmas.ru/arts/bodyart/znachenie-tatuirovok.-chast-i.html\x22\x3…ttp://readmas.ru/arts/bodyart/znachenie-tatuirovok.-chast-i.html\x3c/a\x3e",
"language":"ru"
}]
},
注意:
这些功能对我不起作用:
replace
。JSON.parse
。$.parseJSON
。答案 0 :(得分:4)
与JavaScript不同,JSON notation仅支持双字节\uNNNN
转义序列,而不支持\xNN
序列。试试这个:
var cleaned = input.replace(/\\x([0-9a-f]{2})/g, '\\u00$1');
var output = $.parseJSON(cleaned);
console.log(output);
另外,为了使这个演示工作,我对你的字符串进行了一些其他修改,我认为这只是你在这里格式化问题的结果:
\xNN
)处断开的\x3…ttp
转义序列。在任何情况下,如果你能使你的服务(或任何给你这个文件的东西)提供有效的JSON而不是这个,那可能会更好。