我刚在Chrome控制台中看到了这个:
JSON.stringify(({wat:"\""}))
> "{"wat":"\""}"
JSON.parse(JSON.stringify(({wat:"\""})))
> Object {wat: """}
JSON.parse('{"wat":"\""}')
> VM34235:1 Uncaught SyntaxError: Unexpected string in JSON at position 9(…)
截图:
JSON.parse
在传递JSON.stringify({wat:"\""})
的输出时成功解析,但在我尝试评估JSON.parse('{"wat":"\""}')
时抛出。
我打电话给恶作剧。
答案 0 :(得分:5)
引号字符必须使用两个反斜杠进行转义,如下所示:
JSON.parse('{"wat":"\\""}')
如果仅使用一个反斜杠进行转义,JSON.parse()
实际上会得到以下值来解析:
{"wat":"""}
当然是无效的JSON。
答案 1 :(得分:0)
尝试添加2个这样的反斜杠。 JS将\视为转义符并忽略它。所以:
{wat:"\\""}