JSON:当key未知时,如何迭代json对象以获得key = value格式的结果?

时间:2015-03-23 07:13:10

标签: jquery json

我使用jquery $ .post()方法从数据库表单输入记录中检索用户提供给表单的输入。我的json对象来了:

[{"ttfdgdf":"sdafsdf"},
{"number":"34243"},
{"gfgfgrg":"vvsvd"},
{"bfghngfh":"453467"},
{"mvbmnbm":"vgdfgvdfg"},
{"cb":"on"},
{"radio":"on"},
{"lkl":"f231"},
{"lklkl":"453243"}]

但我不知道如何迭代这个,因为条目是动态的&密钥不固定(密钥将由构建表单的用户动态给出)。

2 个答案:

答案 0 :(得分:0)

使用forfor..in循环遍历您的数据,如下:

var data = [{"ttfdgdf":"sdafsdf"},
{"number":"34243"},
{"gfgfgrg":"vvsvd"},
{"bfghngfh":"453467"},
{"mvbmnbm":"vgdfgvdfg"},
{"cb":"on"},
{"radio":"on"},
{"lkl":"f231"},
{"lklkl":"453243"}];

//iterate thru array of objects using for loop
for(var i = 0, len = data.length; i < len; i++) {
    //use for..in loop to iterate thru your object
    for(var key in data[i]) {
        console.log( key + "=" + data[i][key] );
    }
}

答案 1 :(得分:0)

首先需要遍历顶部的索引数组。你可以用一个简单的for循环来做到这一点。

之后,您需要一个属性循环。通过索引的名称/属性名称循环。只有一点需要注意,那就是你需要进行第二次测试才能看到它是一个“自己的”属性还是一个固有的原型属性(例如indexOf,toString,length等等)

你最终会得到这个结构。小提琴:http://jsfiddle.net/5t93n7t2/

var arr = [{"ttfdgdf":"sdafsdf"},
{"number":"34243"},
{"gfgfgrg":"vvsvd"},
{"bfghngfh":"453467"},
{"mvbmnbm":"vgdfgvdfg"},
{"cb":"on"},
{"radio":"on"},
{"lkl":"f231"},
{"lklkl":"453243"}];

for(var c=0;c<arr.length;c++) {
    for(var key in arr[c]) {
        if(arr[c].hasOwnProperty(key)) {
            document.getElementById('contents').innerHTML+= "<BR/>Key="+key+", Value="+arr[c][key];
        }
    }
}