Javascript:获取JSON数组中的所有现有密钥

S S*_*ngh 15 javascript jquery json jquery-ui

我有一个像下面这样的JSON数组:

var jsonArray = [{"k1":"v1"},{"k2":"v2"},{"k3":"v3"},{"k4":"v4"},{"k5":"v5"}]
Run Code Online (Sandbox Code Playgroud)

我不知道这个数组中存在哪些键.我想从数组中获取所有现有密钥.

它可能是这样的:

for(i=0;i<jsonArray.lenght;i++){
  // something like-  key = jsonArray[i].key
  // alert(key);
}
Run Code Online (Sandbox Code Playgroud)

请告诉我获取Json数组中存在的所有键的方法或方法.

问候

Ber*_*rgi 18

你为什么不用

var jsonObject = {"k1":"v1","k2":"v2","k3":"v3","k4":"v4","k5":"v5"}
Run Code Online (Sandbox Code Playgroud)

而不是你的

var jsonArray = [{"k1":"v1"},{"k2":"v2"},{"k3":"v3"},{"k4":"v4"},{"k5":"v5"}]
Run Code Online (Sandbox Code Playgroud)

?然后解决方案就这么简单:Object.keys(jsonObject).


fre*_*ish 10

试试这个:

var L = jsonArray.length;
for (var i = 0; i < L; i++) {
    var obj = jsonArray[i];
    for (var j in obj) {
        alert(j);
    }
}
Run Code Online (Sandbox Code Playgroud)

我还对你当前的代码进行了一些修改(比如length缓存).


Ben*_*Lee 5

循环遍历对象属性,并选择第一个"真实"属性(给定您的数据模式应该是唯一真实的).

var jsonArray = [{"k1":"v1"},{"k2":"v2"},{"k3":"v3"},{"k4":"v4"},{"k5":"v5"}]

for (var i = 0; i < jsonArray.length; i++) {
    for (var prop in jsonArray[i]) {
        if (jsonArray[i].hasOwnProperty(prop)) {
            var key = prop;
            break;
        }
    }
    alert(key);
}
Run Code Online (Sandbox Code Playgroud)

请参见如何遍历js对象中的项目?解释为什么hasOwnProperty在这里使用它很重要.