【问题标题】:jQuery JSON parse - object elementsjQuery JSON 解析 - 对象元素
【发布时间】:2017-07-14 14:58:51
【问题描述】:

这是我的 JSON:(这是 AJAX 响应数据)

{"id":"1","code":"43","doc":"{\"date\":\"2016\",\"name\":\"NAME1\",\"id\":\"7\"}"}

我想用 jQuery 解析这个 JSON:

var obj = jQuery.parseJSON(data);

这是文档:console.log(obj.doc);

{\"date\":\"2016\",\"name\":\"NAME1\",\"id\":\"7\"}

但是我如何引用“名称”? 我没有引用 obj.doc.name,因为“名称”不是对象上的元素。

【问题讨论】:

  • 可以清楚的看到obj.doc的值是一个包含JSON的字符串。您需要再次申请JSON.parse(obj.doc)。然而,更好的办法是修复生成 JSON 的代码,使其不对您的数据进行双重编码。
  • 它看起来好像doc 本身就是 JSON,所以你需要解析它。类似var obj = jQuery.parseJSON(data); obj.doc = jQuery.parseJSON(obj.doc);
  • 谢谢!这是有效的!

标签: javascript jquery json ajax parsing


【解决方案1】:

由于对象中“doc”属性的值是一个字符串,因此您需要解析该值以将其视为 JSON 对象。

在第一次解析之后你可以这样做:

var doc = JSON.parse(obj.doc)

然后你就可以访问doc.name了。

【讨论】:

    【解决方案2】:

    在这种情况下,响应已经是 JSON。您只想解析data.doc

    你可以这样做:

    data.doc = jQuery.parseJSON(data.doc)
    

    现在,当你得到你想要的东西时。

    > console.log(data.doc.name)
    NAME1
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2019-12-18
      • 1970-01-01
      • 1970-01-01
      • 2012-07-21
      • 2014-10-31
      • 2013-03-22
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多