2011-05-13 66 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