我有一个JSON对象,它从JavaScript API调用中返回:
{
"myArray": [
{
"version": 5,
"permissionMask": 1
},
{
"version": 126,
"permissionMask": 1
}
]
}
如何在JavaScript中访问数组的名称(即myArray
)。我需要使用数组的名称来确定以后的流程。
答案 0 :(得分:3)
Object.keys(data)[0]
# => "myArray"
术语说明:此解决方案假设您有一个JavaScript对象。您可能有一个JSON字符串,在这种情况下,这是解决方案:
Object.keys(JSON.parse(data))[0]
# => "myArray"
然而,在JavaScript中," JSON对象"只是一个 - 我刚刚使用的那个,有JSON.parse
和JSON.stringify
方法。你所拥有的是不一个JSON对象,除非是对第二种情况的简单解释,其中JavaScript中的所有值都是对象,包括字符串。
答案 1 :(得分:2)
使用getOwnPropertyNames
以数组形式获取对象属性的列表。
示例:
var myObj = {
"myArray": [
{
"version": 5,
"permissionMask": 1
},
{
"version": 126,
"permissionMask": 1
}
]
},
names = Object.getOwnPropertyNames(myObj);
alert(names[0]); // alerts "myArray"
注意:如果对象可以有多个属性,例如myArray
,myInt
和myOtherArray
,那么您需要循环覆盖getOwnPropertyNames
的结果。您还需要进行类型测试,如if(names[0] instanceof Array) {...}
中所示,以检查属性类型。根据你问题中的例子,我没有在这里充实。
答案 2 :(得分:0)
如果您无法控制返回格式,其他答案都很好。
但是,如果可以,我建议更改返回格式,将您关心的重要值作为实际值而不是键,以使其更清晰。例如,像这样:
result =
{
"name: "myArray",
"value": [
{
"version": 5,
"permissionMask": 1
},
{
"version": 126,
"permissionMask": 1
}
]
}
然后,可靠地访问您关注的财产更加清晰:result.name