如何遍历此json对象(不使用jquery)

时间:2014-05-29 14:10:39

标签: javascript json

我想遍历一个我从var jsonObj json_encode( <?php echo $php_array ?>);得到的json对象。在我看来,这与大多数人的格式不同。例如,w3schools将其显示为json对象:

{
    "employees": [
        { "firstName":"John" , "lastName":"Doe" }, 
        { "firstName":"Anna" , "lastName":"Smith" }, 
        { "firstName":"Peter" , "lastName":"Jones" }
    ]
}

我似乎有完全的结构:

{"PINEFOREST JEWELRY":
    ["3034.25","2002-01-02"],
"AMBERS DESIGN":
    ["2034.75","2002-01-02"],
"ELEGANT JEWELERS":
    ["206","2002-01-02"],
"SALEM'S JEWELERS":
    ["406","2002-01-02"]}

我可以迭代这个吗?

3 个答案:

答案 0 :(得分:0)

您可以将for in与嵌套for

一起使用
for (var key in data) {
    for (var i = 0; i < data[key].length; i++) {
        console.log(data[key][i]);
    }
}

答案 1 :(得分:0)

您可以使用for循环迭代对象的直接属性,如下所示:

var val;
for(var key in obj) {
    if(obj.hasOwnProperty(key)){
        val = obj[key];
        console.log(val);
    }
}

答案 2 :(得分:0)

是的,你可以通过它来进行迭代,因为它是有效的json。

首先,您需要将json转换为javascript可以迭代的内容,您可以使用JSON.parse()MDN)执行此操作。我假设&#39; json&#39;你在上面描述的是一串&#39; json&#39;这样:

var jewellery = JSON.parse(myJson); // replace myJson with whatever variable is holding your json

此时你有一个object,你可以将其删除。最简单的方法之一是使用Object.keys()MDN)和Array.forEach()MDN),如下所示:

Object.keys(jewellery).forEach(function (key) {
    console.log(key); // would log 'PINEFOREST JEWELRY' the first time
    jewellery[key].forEach(function (price) {
        console.log(price); // Should log '3034.25' the first time
    }
});

尝试一下,否则您仍然可以使用其他人提交的其他解决方案,无论是或者可以使用。这就是我要做的事情!!