javascript - JSON.parse 解析 JSON.stringify 输出,但不解析字符串本身

标签 javascript json parsing

我刚刚在 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(…)

屏幕截图:

shenanigans

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/

相关文章:

java - 如何使用android解析xml

javascript - 通过相同的函数解析来自各种 xml 源的数据

javascript - 使用项目依赖项的输入定义 Gradle 任务?

javascript - ajax 查询我的内容是自动选择的我如何选择这是测试查询

javascript 在 Internet Explorer 中抛出异常

json - 使用 Phoenix 将解码后的 JSON 传递到 View

javascript - 主干 - 未为模型定义 model.destroy() 函数

javascript - 减少父对象中的对象类型

parsing - 批处理 - 解析 Tracert 的输出

JavaScript/jQuery - 未捕获类型错误 - 但变量已在脚本中启动