如何在属性名称未知的情况下解析JSON数据

How to parse JSON data when the property name is not known in advance?

本文关键字:情况下 JSON 数据 未知 属性      更新时间:2023-09-26

这是我在jQuery中的响应代码:

var response = $.parseJSON(response);
for (var i = 0; i < response.groupIds.length; i++) {
    console.log(response.groupIds[i], i);
}

每个CCD_ 1具有CCD_。

我想用javascript访问这两个数据位,当我事先不知道unknown name是什么时,我该如何实现这一点?

使用Object.keys检索关键字名称的完整列表(数组)。这里有聚乙烯填充物。

var group = response.groupIds[i];
var allPropertyNames = Object.keys(group);
for (var j=0; j<allPropertyNames.length; j++) {
    var name = allPropertyNames[j];
    var value = group[name];
    // Do something
}

您的问题的回答格式只包含一个键值对。然后可以将代码简化为:

var group = response.groupIds[i];
var name = Object.keys(group)[0]; // Get the first item of the list;  = key name
var value = group[name];

如果您对该列表不感兴趣,请使用带有hasOwnPropertyfor-i-in循环。必须使用最后一种方法,以排除从原型继承的属性。

for (var name in group) {
    if (group.hasOwnProperty(name)) {
        var value = group[name];
        // Do something
    }
}

使用for..in循环:

for( x in response.groupIds[i]) {
    // x is now your unknown key
    // response.groupIds[i][x] is the unknown value
}

由于对象只有一个属性,所以这将很好地工作。