javascript - JSON.parse 不适用于值中的双引号

标签 javascript json

我觉得我必须在这里遗漏一些简单的东西。我想使用 JSON.parse 将字符串转换为 JSON 对象。我一直在研究这个简单的例子。

JSON.stringify({hi:'"bye"'})
//returns "{"hi":"\"bye\""}"

JSON.parse(JSON.stringify({hi:'"bye"'}))
//returns Object {hi: ""bye""}

JSON.parse("{"hi":"\"bye\""}")
//returns SyntaxError: Unexpected identifier

JSON.parse('{"hi":"\"bye\""}')
//Unexpected token b

我的问题是,手动传入 stringify 返回值与直接将​​ stringify 返回值传递给解析有什么区别? Mu 的最终目标是能够将 JSON 字符串解析为 JSON 对象,其中值可能包含双引号。

感谢您的帮助。

最佳答案

当您使用引号作为分隔符将对象的字符串表示形式放入字符串中时,您必须转义反斜杠和引号:

JSON.parse("{\"hi\":\"\\\"bye\\\"\"}")

当您使用撇号作为字符串分隔符时,您不必转义引号(但如果有的话,您必须转义撇号):

JSON.parse('{"hi":"\\"bye\\""}')

关于javascript - JSON.parse 不适用于值中的双引号,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27136703/

相关文章:

javascript - JSON 字符串是否支持双引号?

java - 如何从 AngularJS POST 获取 Struts 1 中的数据

reactjs - 在 vercel 上部署 Next.js 时出错 : Unexpected token R in JSON at position 0

javascript - 我的 javascript 代码在 Chrome 中看起来很奇怪

javascript - 使用函数动态更新另一个函数的参数对象

javascript - 如何使用jquery在页面上显示特定的div id?

javascript - Access-Control-Allow-Origin 不允许来源

javascript - 在循环中发送 jquery ajax 请求

javascript - Json不接收来自PHP的数据

javascript - 按日期对 JSON 进行排序