一尘不染

当属性名称未知时,如何解析JSON数据?

json

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

var response = $.parseJSON(response);

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

每个response.groupIds[i]都是形式{"unknown name":"unknown value"}

我希望访问javascript中的这两个数据位,如果我事先不知道例如什么,该怎么做unknown name


阅读 307

收藏
2020-07-27

共1个答案

一尘不染

使用Object.keys检索键名的完整列表(阵列)。一个polyfill
在这里可用。

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];

如果你没有在列表中感兴趣的话,使用for-i-in循环 使用
hasOwnProperty。必须使用最后一种方法,以排除从原型继承的属性。

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