2017-03-06 62 views
0

我有一個(嵌套的)數據結構包含對象和數組。我如何提取信息,即訪問特定或多個值(或鍵)?如何從嵌套的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

但我想在兩個時間值顯示第一或第二列表值。

另外,如何訪問list中第二項的svalue

我試着用data.list[1]但:

TypeError: data.list is undefined

+1

'數據[0] .LIST [1]'被訪問,注意'data'也是一個數組 – Satpal

+0

'data.forEach((d)=> {d.list.forEach((l,i)=> {console.log(「list date:」,l,「index:」 ,我;)})})' – Rajesh

+0

'''data [0] .list [1] .svalue''' – Yod

回答

0

由於data是一個數組,你應該首先獲得該項目 - 因爲你只能有一個項目 - 你會使用data[0],然後去訪問list財產如data[0].list[1] - 這會給你list中的第二項 - 但由於您對此物品的特定物業(svalue)感興趣,因此您可以像這樣訪問它:data[0].list[1].svalue

更好的方法是循環訪問數據數組中的項 - 然後循環訪問列表數組中的項。請參閱@ Rajesh的評論。 我希望有幫助;

0

具體而言,您可以像這樣訪問它object.data[0].list[1].svalue。究其原因data.listundefined是因爲data相當於一個數組data: [{ }]這就是爲什麼我們使用data[0],但data本身就是一個對象的關鍵這樣,才能得到你需要訪問它data。如果對象name其中data駐留分別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)

+0

如何將多個列表值設置爲數據表? – user7646838

相關問題