1

我的 JSON 结构如下

var myJSON = {
               "userTypes": {
                     "@type": "Array",
                     "type": [
                               "Administrator",
                               "Customer",
                               "Guest"
                              ]
                            }
             }

当我尝试访问myJSON.userTypes.@type时收到错误“ SyntaxError: Unexpected token ILLEGAL ”,但如果我这样访问,myJSON.userTypes.type则可以访问数组。

所以我的问题是,

  1. @ 符号即使存在也真的无关紧要吗?
  2. 这会产生什么影响?

问候,

纳文

4

3 回答 3

8

在访问 JavaScript 对象中的属性时,您可以使用点表示法或方括号表示法。

If you use dot-notation, then you can only access properties which can be represented as an identifier. An identifier cannot start with an @ character.

Since the property you are trying to access cannot be represented by an identifier, you are limited to square bracket notation. Such:

myJSON.userTypes['@type']
于 2012-05-18T17:13:05.307 回答
3

你需要这样做:myJSON.userTypes["@type"]. 然后,您可以随心所欲地使用@。正如我所演示的,关键是通过字符串引用属性。

于 2012-05-18T17:11:32.333 回答
3

问题在于以“@”开头的标识符在语法上无效。要访问该密钥,您需要执行myJSON.userTypes['@type'].

于 2012-05-18T17:12:01.307 回答