views:

172

answers:

5

I must be missing something simple here, but I'm having trouble retrieving data from a JSON array response. I can access objects with identifiers that start with letters, but not ones that start with numbers.

For example, I can access

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

But I can't access

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

If anyone can point me in the right direction, I'd really appreciate it. Thanks.

+4  A: 

Identifier literals must not begin with a number because they would be confused with number literals. You need to use the bracket syntax in this case:

 data.item[0].specs["9a99"].details
Gumbo
+1  A: 

Try this,

data.items[0].specs["9a99"].details
Mahesh Velaga
+3  A: 

Use bracket notation

that is:

data.item[0].specs["9a99"].details
timdev
thanks, this is the answer. (I'll check it off as soon as the time limit is passed).
Archie Ec
A: 

A variable name in javascript cannot start with a numeral. That's the reason why it doesn't work.

Hery
+1  A: 

Javascript doesn't like variables or identifiers that start with a number, this reference states that only:

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)

are valid first characters.

amelvin
thanks for the additional info. This is helpful and appreciated.
Archie Ec