[英]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"
}]
}]
}
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.