如何修复转义的JSON字符串(JavaScript)
远程服务器(不在我的控制范围内)发送一个JSON字符串,该字符串具有所有转义的字段名和值。例如,当我执行JSON.stringify(res)时,结果如下:
"{\"orderId\":\"123\"}"
现在,当我执行alert(res.orderId)时,它说未定义。我认为是因为逃脱了。我该如何解决?
回答:
假设这 是显示 的实际值,请考虑:
twice_json = '"{\\"orderId\\":\\"123\\"}"' // (ingore the extra slashes)json = JSON.parse(twice_json) // => '{"orderId":"123"}'
obj = JSON.parse(json) // => {orderId: "123"}
obj.orderId // => "123"
请注意将JSON.stringify应用于json
值(这是一个 字符串 ,因为JSON 是text
)将如何产生该twice_json
值。进一步考虑obj
( JavaScript object )和json
(JSON string
)之间的关系。
也就是说,如果帖子中显示的结果是的输出,JSON.stringify(res)
那么res 已经 是JSON(它是 text / string
),而 不是 JavaScript对象-因此,不要在已经为JSON的值上调用stringify!而是obj = JSON.parse(res);
obj.orderId根据上面的演示/转换使用。
以上是 如何修复转义的JSON字符串(JavaScript) 的全部内容, 来源链接: utcz.com/qa/428355.html