关于@symbol对JSON密钥的影响

时间:2012-05-18 17:10:10

标签: javascript arrays json

我的JSON结构如下

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

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

所以我的问题是,

  1. @符号确实在密钥中无关紧要,即使它存在吗?
  2. 这会产生什么影响?
  3. 此致

    纳文

3 个答案:

答案 0 :(得分:6)

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

如果使用点符号,则只能访问可以表示为标识符的属性。标识符不能以@字符开头。

由于您尝试访问的属性无法用标识符表示,因此您只能使用方括号表示法。这样:

myJSON.userTypes['@type']

答案 1 :(得分:3)

您需要执行此操作:myJSON.userTypes["@type"]。然后您可以根据需要使用@。关键是通过字符串引用属性,正如我演示的那样。

答案 2 :(得分:3)

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