2010-04-25 26 views
3

我在这里必须缺少一些简单的内容,但是我无法从JSON数组响应中检索数据。我可以访问标识符以字母开头的对象,但不能以数字开头的标识符。从JavaScript中的JSON子数组检索数据,其中标识符以整数开头

例如,我可以访问

data.item[0].specs.overview.details 

但我不能访问

data.item[0].specs.9a99.details 
+1

啊,我应该知道这一点。感谢所有快速解答!我会接受第一个。 – 2010-04-25 22:44:46

+0

不要忘记接受答案。这是提高未来获得帮助的可能性的好方法。 – 2010-04-25 22:48:29

+0

是的,我做过了,但系统在提问后15分钟内不让我接受答案。谢谢你的信息!我也投了所有正确答案。 – 2010-04-25 23:03:03

回答

5

使用bracket notation

那就是:

data.item[0].specs["9a99"].details 
+0

谢谢,这是答案。 (我会尽快检查它的时间限制通过)。 – 2010-04-25 22:49:35

5

标识文字不能以数字开头,因为他们将与数文字混淆。您需要使用括号语法在这种情况下:

data.item[0].specs["9a99"].details 
2

试试这个,

data.items[0].specs["9a99"].details 
2

在JavaScript中的变量名不能从数字开始。这就是它不起作用的原因。

2

JavaScript不喜欢以数字开头的变量或标识符,this reference状态,只有:

Any variable name has to start with 
_ (underscore) 
$ (currency sign) 
a letter from [a-z][A-Z] range 
Unicode letter in the form \uAABB (where AA and BB are hex values) 

是有效的第一个字符。

+0

感谢您的额外信息。这是有益的和赞赏。 – 2010-04-25 23:03:55