我为项目使用简单的REST API,我需要的一些数据使用数字字符串作为顶级父节点。当试图在我的javascript中调用它时,它会引发语法错误。
这里是JSON对象:
{" 23497400" {" ID":23497400,"名称":foobar的," profileIconId":627,&#34 ; revisionDate":1431385425000}}
以及我在这里抛出错误:
var myArr = JSON.parse(xmlhttp.responseText);
var name1 = myArr.23497400.name;
我错过了一些非常简单的东西,对吗?
答案 0 :(得分:5)
如果密钥不是有效的标识符名称,则需要使用bracket notation。
var name1 = myArr['23497400'].name;
使用dot notation时,
属性必须是有效的JavaScript标识符,即序列 字母数字字符,也包括下划线(" _")和 美元符号(" $"),不能以数字开头。例如, 对象。$ 1是有效的,而object.1不是。
答案 1 :(得分:1)
点符号仅适用于有效标识符的属性名称:它们必须以字母,$,_或unicode转义序列开头。对于所有其他属性名称(例如本例中的数字属性),必须使用括号表示法,如下所示:
myArr['23497400'].name