如何从带有符号(@)前缀的对象中读取?

时间:2013-06-24 10:39:53

标签: javascript jquery json rest

当对象定义如下时,如何打印出category.uri的值:

API

如果我尝试using object[0].category.@uri,我会收到以下错误:

  

未捕获的SyntaxError:意外的标记+

如果我在没有@ -sign的情况下尝试,我会得到:

  

未捕获的TypeError:无法读取undef的属性'uri'

基本上:如果在前面加上at符号时如何读取值?什么是at符号意味着为什么它首先出现在那里? (在这种情况下,我不控制我正在使用的REST-API)

2 个答案:

答案 0 :(得分:8)

Javascript有两个对象访问符号(称为member operators):点表示法和方括号表示法。这些是相同的:

document.forms
document['forms']

您始终可以使用方括号表示法,但不能始终使用点表示法。因此,如果您的属性名称不符合标识符规则,则需要使用方括号形式。

object[0].category['@uri']

规则是:

  

JavaScript标识符必须以字母,下划线(_)或美元符号($)开头;后续字符也可以是数字(0-9)。因为JavaScript区分大小写,所以字母包括字符“A”到“Z”(大写)和字符“a”到“z”(小写)。 (MDN)

答案 1 :(得分:4)

像这样:

object[0].category['@uri']
相关问题