当前位置: 首页 > 面试题库 >

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

柴博
2023-03-14
问题内容

远程服务器(不在我的控制范围内)发送一个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值。进一步考虑objJavaScript object )和json(JSON string
)之间的关系。

也就是说,如果帖子中显示的结果是的输出,JSON.stringify(res)那么res 已经 是JSON(它是 text / string
),而 不是 JavaScript对象-因此,不要在已经为JSON的值上调用stringify!而是obj = JSON.parse(res); obj.orderId根据上面的演示/转换使用。



 类似资料:
  • 问题内容: 手动创建JSON数据时,应如何转义字符串字段?我应该用什么样的Apache Commons Lang中的,或者我应该使用? 问题是,当我使用时,它不会转义引号,并且当我将整个字符串包装在一对s中时,将生成格式错误的JSON。 问题答案: 理想情况下, 找到一种使用您的语言的JSON库 ,您可以向该 库 提供一些适当的数据结构, 并使它担心如何转义 。它会让您保持头脑清醒。如果出于某种原

  • 问题内容: 从2gis API中,我获得了以下JSON字符串。 但是Python无法识别它: 期望的分隔符:第1行第3646列(字符3645) 似乎用引号引起问题:“标题”:“中心“ ADVANCE”” 如何在Python中自动修复它? 问题答案: @Michael的回答给了我一个主意……这不是一个很漂亮的主意,但是它似乎可以工作,至少在您的示例中有效:尝试解析JSON字符串,如果失败,则查找失败

  • 从2GIS API中,我得到了以下JSON字符串。 但Python并不认可: 应为,分隔符:第1行列3646(字符3645) 我如何在Python中自动修复它?

  • 问题内容: 手动创建数据时,应如何转义字符串字段?我应该用什么样的中的或者我应该使用 问题是,当我使用时,它不会转义引号,并且当我将整个字符串包装在一对s中时,将生成格式错误的JSON。 问题答案: 理想情况下,找到一种使用你的语言的JSON库,你可以向该库提供一些适当的数据结构,并使它担心如何转义。它会让你保持头脑清醒。如果出于某种原因你没有使用你的语言的库,或者你不想使用一个库(我不建议这样做

  • 问题内容: 我有以下要发送到NodeJS服务器的JSON字符串: 当字符串包含字符和 在NodeJS服务器上,我正在像这样解析JSON: 有什么想法我可以设法毫无问题地发送所有字符吗? 问题答案: 我会使用一个库来为您创建JSON 。一些选项是: GSON 克罗福德的解放 这将使转义变得更加容易。一个示例(使用)为:

  • 问题内容: 我从公共API接收到一个JSON对象,该对象本身具有一个转义的JSON字符串。 我如何将此属性转换为实际的JSON对象(未转义),以便使用NewtonSoft Json.NET反序列化整个响应? 问题答案: 这是我根据 Sam 的答案使用的可行解决方案: