Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/463.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript:访问名称以数字开头的对象属性_Javascript_Jquery_Json_Variables_Hashmap - Fatal编程技术网

Javascript:访问名称以数字开头的对象属性

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

我正在创建一个Javascript/jQuery应用程序

我需要处理一个表示
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确实如此,我编辑了标题。。。