【发布时间】:2014-08-25 21:57:06
【问题描述】:
我有一个对象,其中一个属性以数字开头。我读过这是允许的,但我收到了这个错误:
SyntaxError: 标识符在数字文字之后立即开始
var stats = {"LOAD_AVG":{"1_MIN":0.08,"5_MIN":0.08,"15_MIN":0.08},"COUNTS":{"TOTAL":888,"RUNNING":1,"SLEEPING":887,"STOPPED":0,"ZOMBIE":0},"CPU":{"USER_CPU_TIME":8.9,"SYSTEM_CPU_TIME":2.4,"NICE_CPU_TIME":0,"IO_WAIT_TIME":1,"HARD_TIME":0,"SOFT_TIME":0.1,"STEAL_TIME":0},"MEMORY":{"PHYSICAL":{"TOTAL":"3921.98mb","IN_USE":"3682.652mb (93.9%)","AVAILABLE":"239.328mb (6.1%)","BUFFERS":"266.492mb (6.8%)"},"SWAP":{"TOTAL":"4194.296mb","IN_USE":"64.264mb (1.5%)","AVAILABLE":"4130.032mb (98.5%)","CACHE":"1191.328mb (28.4%)"}}};
//works fine
window.alert(stats.COUNTS.TOTAL);
//doesn't work
window.alert(stats.LOAD_AVG.1_MIN);
如何在不重写生成它的 PHP 的情况下访问以数字开头的属性?
【问题讨论】:
-
这与 JSON 无关,真的。这只是 Javascript 对象的工作方式,无论是否从文字(基本上是 JSON 的定义)初始化。
foo.bar只是foo["bar"]的一个快捷方式,当密钥字符串恰好生成一个有效的 Javascript 标识符时,它就会起作用。 -
@MarkReed 虽然 OP 没有访问 JSON 对象是正确的,但如果 JSON 没有以数字开头的属性,则问题将不存在:p
标签: javascript