2011-05-13 68 views
10

得到一個JSON值假設我有{"data": {"243232": {"id": "testid","name": "test" } }}如何從一個變量

所以當我做

var a = data.243232.id; alert(a); //它給了我testid.

但是當我做喜歡

var c = 243232; 
    var d = data.c.id; 
    alert(d) //it gives as undefined. 

所以,當我在上面的情況下感謝提醒d如何得到正確的值。

+0

請通過點擊最好的 – austinbv 2011-05-15 03:12:17

回答

11

使用其他符號var a = data['243232'].id

記得在JS中的所有對象都是真的只是關聯數組。

對象鍵只是JS的變量,因此需要適當的命名

變量的命名規則。

  • 第一個字符必須是字母 (大寫或小寫)或 下劃線(_)或一個美元符號($)。
  • 後續字符可以是字母, 數字,下劃線或美元符號 的JavaScript變量。
  • JavaScript變量名不能 JavaScript的一個保留字,見 細節的JavaScript保留的 性狀

JSON通常使用的eval()函數把字符串到數據結構。這允許不正確的鍵。如果你想引用一個不正確的鍵,你需要使用關聯數組方法。

至於你除了

var c = 243232; 
var d = data[c].id; 
alert(d) //it gives as undefined. 

將工作

+0

答案旁邊的綠色問號接受正確的答案,謝謝它的效果。 – druveen 2011-05-13 05:25:07

+0

感謝分享 – 2012-10-22 17:09:41

6

使用data[c].id

在JavaScript中,.prop["prop"]的語法糖。括號表示法允許您使用在使用.(如background-image)和變量時無效的值。

+0

。並不是對[]的引用。 []和。被完全不同地解析。其主要部分是使用.notation將值解析爲關鍵變量,因此它必須符合變量命名規則。另一方面,[]會被解析爲一個字符串文字或值,它允許任何字符。看看JS CFG。 – austinbv 2011-05-13 05:35:36

相關問題