我刚刚在 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":"\""}')
.
我称之为恶作剧。
最佳答案
引号字符必须用两个反斜杠转义,如下所示:
JSON.parse('{"wat":"\\""}')
当仅使用一个反斜杠进行转义时,JSON.parse()
实际上会获取以下值进行解析:
{"wat":"""}
这当然是无效的 JSON。
关于javascript - JSON.parse 解析 JSON.stringify 输出,但不解析字符串本身,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37357802/