javascript - 如何修复转义的 JSON 字符串 (JavaScript)

标签 javascript json

远程服务器(不受我控制)发送一个 JSON 字符串,其中所有字段名和值都已转义。 例如,当我执行 JSON.stringify(res) 时,结果如下:

"{\"orderId\":\"123\"}"

现在,当我执行 alert(res.orderId) 时,它显示未定义。我认为这是因为逃脱了“s。 我该如何解决这个问题?

最佳答案

假设显示的实际值然后考虑:

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 值(这是一个 string,因为 JSON 是文本)将导致 twice_json 值。进一步考虑 obj(一个 JavaScript 对象)和 json(JSON string)之间的关系。

也就是说,如果帖子中显示的结果是 JSON.stringify(res) 的输出,那么 res 已经是 JSON(即 text/一个字符串) 而不是 JavaScript 对象 - 所以不要在已经是 JSON 的值上调用 stringify!相反,使用 obj = JSON.parse(res); obj.orderId,根据上述演示/转换。

关于javascript - 如何修复转义的 JSON 字符串 (JavaScript),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25721164/

相关文章:

javascript - 什么是获得排序数组中连续元素之间最大差异的最佳解决方案

java - POJO 到 JSON 的转换不适用于以 "is"开头的字符串变量

javascript - 结果数据的意义

javascript - 使用 json 调用 ArcGIS 服务的 AJAX 无法正常工作

javascript - 使用 .search() 或正则表达式查找 ID 中包含 X 的元素

javascript - React-redux 和 Redux-Thunk 中从 API 获取数据的问题

javascript - 对预建表实现属性

php - 根据用户的时间设置问候语(早上好,下午好……)

json - 使用VueJs 在Axios 中,当responseType 为blob 时,如何读取http 错误?

php - 使用 PHP 脚本将 MySQL 数据转换为 JSON 格式