繁体   English   中英

如何从嵌套JSON获取特定或多个值(或键)

[英]How to get a specific or multiple values (or keys) from nested JSON

我有一个包含对象和数组的(嵌套)数据结构。 如何提取信息,即访问特定或多个值(或键)?

  {
    "data": [{
      "name": "name1",
      "value": "value1",
      "list": [{
        "sname": "sname1",
        "svalue": "svalue1"
      }, {
        "sname": "sname2",
        "svalue": "svalue2"
      }]
    }]
  }

jQuery的

var pk = $("#pk").val();
console.log(pk);
url = "/register/search?id=" + pk;
console.log(url);
$('#largeTable').DataTable({
  "ajax": url,
  "bDestroy": true,
  "columns": [{
      "data": "name"
    },
    {
      "data": "value"
    },
    {
      "data": "list.1.sname"
    },
    {
      "data": "list.1.svalue"
    },
    {
      "data": null,
      "defaultContent": editview
    }
  ]
});

在这里可以使用list.1或list.0显示第一或第二个列表值

但是我一次要两个值。

另外,我怎么能访问svalue中的第二项的list

我尝试了data.list[1]但:

TypeError:data.list未定义

由于data是一个数组,因此您应该首先获取该项-并且由于只有一项-您将使用data[0] ,然后可以访问诸如data[0].list[1]类的list属性-将为您提供list的第二个项目-但由于您对该项目的特定属性( svalue )感兴趣,因此您将像这样访问它: data[0].list[1].svalue

更好的方法是遍历数据数组中的项目-然后对于每个项目,遍历列表数组中的项目。 参见@Rajesh的评论。 我希望能有所帮助;

具体来说,您可以像object.data[0].list[1].svalue这样访问它。 之所以undefined data.list的原因是因为data对应于数组data: [{ }]这就是为什么我们使用data[0] ,但是data本身是对象中的键,因此在获取data之前需要访问它。 如果data所在的对象名称是object (如我在下面所做的那样),则将像此object 一样访问它object.data[0]

 const object = { "data": [{ "name": "name1", "value": "value1", "list": [{ "sname": "sname1", "svalue": "svalue1" }, { "sname": "sname2", "svalue": "svalue2" }] }] } console.log(object.data[0].list[1].svalue) 

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM