Javascript:访问名称以数字开头的对象属性
我正在创建一个Javascript/jQuery应用程序 我需要处理一个表示Javascript:访问名称以数字开头的对象属性,javascript,jquery,json,variables,hashmap,Javascript,Jquery,Json,Variables,Hashmap,我正在创建一个Javascript/jQuery应用程序 我需要处理一个表示HashMap的JSON响应,如下所示: { "accounts": { "MediaFire": { "provider": "MediaFire", "usedStorage": "779680", "totalStorage": "53687091200" }, "4Sync": { "provider": "4
HashMap
的JSON响应,如下所示:
{
"accounts": {
"MediaFire": {
"provider": "MediaFire",
"usedStorage": "779680",
"totalStorage": "53687091200"
},
"4Sync": {
"provider": "4Sync",
"usedStorage": "620692",
"totalStorage": "16106127360"
}
}
}
var usedStorage = result.accounts.4Sync.usedStorage; //doesn't work
我使用了一个pasing函数(我无法控制),它在一个对象结果中返回解析后的JSON响应
当我尝试访问4Sync
时,如下所示:
{
"accounts": {
"MediaFire": {
"provider": "MediaFire",
"usedStorage": "779680",
"totalStorage": "53687091200"
},
"4Sync": {
"provider": "4Sync",
"usedStorage": "620692",
"totalStorage": "16106127360"
}
}
}
var usedStorage = result.accounts.4Sync.usedStorage; //doesn't work
它不起作用,我想是因为开头的4个。。。与其他对象相同的操作可以正常工作:
var usedStorage = result.accounts.MediaFire.usedStorage; //works
我知道结果
对象包含对象4Sync
,但我无法访问它。以下是Chrome控制台的屏幕截图:
有什么解决方法吗?使用方括号:
var usedStorage = result.accounts["4Sync"].usedStorage;
属性标识符可以以数字开头,但带有
字符的成员表达式只允许使用有效的变量标识符(因为其他任何内容都是不明确的)。要解决这个问题,可以使用方括号语法,这是等效的,但允许使用任何字符串
如果您感兴趣,这里是:
成员表达式:
原始表达式
函数表达式
MemberExpression[
表达式]
MemberExpression
IdentifierName
请注意方括号可以包含任何表达式,但
后面只能跟一个(基本上是任何有效标识符,加上ES5中的保留字)。请注意,这个问题与JSON无关:JSON是解析之前的字符串表示形式。result
变量引用的对象是解析JSON的结果。问题是“如何访问以数字开头的对象属性”…@nnnnnn确实如此,我编辑了标题。。。