json数组的内容 - 如何使用js获取所有元素

时间:2014-10-19 05:01:18

标签: javascript json

我正在尝试在json字符串中获取数组(未知大小)的内容。

以下内容:

var text = '[ { "_id" : { "$oid" : "54426dbfe4b0a1df0eb4a0f6"} , "user" : "fran" , "fecha" : "18/10/2014" , "time" : "7"} , { "_id" : { "$oid" : "54426efae4b00975f860fc06"} , "user" : "elle" , "fecha" : "18/10/2014" , "time" : "9" , "w" : { "w1" : "dog, dok" , "w2" : "cat, kat", "w3" : "pork, porc"}} ]';

obj = JSON.parse(text); 
document.getElementById("demo").innerHTML =
//obj[0].score;
//obj[0].user;
//obj[1].w.w1;
for (var i in obj[1].w) {
console.log(i);
}

如何循环并获取“w”的所有值?

问候。

3 个答案:

答案 0 :(得分:0)

尝试类似以下内容

for (var i in obj[1].w) {
  console.log(obj[1].w[i]);
}

答案 1 :(得分:0)

你已经得到了它,你需要的所有东西,for循环obj[1].w[i]来访问每个值。

请记住,此代码非常依赖于它始终是数组中的第二个对象,您应该使其更具动态性或检查错误。

答案 2 :(得分:0)

你需要一些东西recursive 这是我写过的简短内容,您可能希望扩展它:

function print(obj) {
    for (var key in obj) {
        if (typeof obj[key] == 'string') {
            console.log(key + ':' + obj[key]);
        } else {
            console.log(key + ' recursive');
            print(obj[key]);
        }
    }
}

var text = '[ { "_id" : { "$oid" : "54426dbfe4b0a1df0eb4a0f6"} , "user" : "fran" , "fecha" : "18/10/2014" , "time" : "7"} , { "_id" : { "$oid" : "54426efae4b00975f860fc06"} , "user" : "elle" , "fecha" : "18/10/2014" , "time" : "9" , "w" : { "w1" : "dog, dok" , "w2" : "cat, kat", "w3" : "pork, porc"}} ]';

var myObj = JSON.parse(text);
print(myObj);

这是你的JSFIDDLE