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