我有一個由節點和鏈接組成的對象的JSON數組。從JSON數組轉換爲對象後未定義的值
data = [Object]=[ { nodes: Array[..] ,links: Array[…] } ]
這很好,但對於訪問鏈接例如我不得不使用data [0] .links,這有點煩人。我希望數組是一個對象,這樣data.links就可以訪問鏈接。我試圖設置:
data = data[0];
但隨後的物體的陣列中,data.links,被顯示爲「未定義」。看來當特定的元件被訪問時所顯示的值,例如data.links[3].name
等。這是爲什麼?
編輯:
更具體地:
如果數據= [{節點:數組[...],鏈接:數組[...]}] =>
console.log(data[0].links); //shows the data[0].links[0].name = value in the console
如果數據= {節點:數組[...],鏈接:數組[...]} =>
console.log(data.links); //shows data[0].links[0].name = undefined
但有趣的是
console.log(data.links[0].name); //shows the correct value.
這是什麼表示法?在JS中,'[Object]'是一個包含內建對象構造函數的數組,'Array [foo]'查找'Array'構造函數的屬性,其名稱是對'foo'的評估結果。 –
_'然後,對象data.links的數組顯示爲「undefined」_ - 顯示如何?請顯示更多的代碼,也許是更真實的數據實例,它們實際上是有效的JS。對於你顯示的數據,如果你說'data.links',在完成'data = data [0]'之後,它會給你鏈接數組,所以你必須使用'data.links [0 ]'等等。(順便說一下,在你的問題中沒有任何JSON - JSON是一種字符串格式。) – nnnnnn
@nnnnnn:我編輯了問題以澄清事情。 – graphmeter