如何遍历这个json对象(不使用jquery)[重复]

Posted

技术标签:

【中文标题】如何遍历这个json对象(不使用jquery)[重复]【英文标题】:how iterate through this json object (not with jquery) [duplicate] 【发布时间】:2014-07-19 01:57:20 【问题描述】:

我想遍历从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"]

我可以遍历这个吗?

【问题讨论】:

看到这个答案:***.com/questions/23310353/… 【参考方案1】:

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

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

【讨论】:

因为它是 JSON,在这种情况下没有必要使用 hasOwnProperty【参考方案2】:

您可以将for in 与嵌套的for 一起使用

for (var key in data) 
    for (var i = 0; i < data[key].length; i++) 
        console.log(data[key][i]);
    

【讨论】:

这让我得到了数字,我如何也得到名字? 名称存储在key变量@bsapaka Document.write(sales_new_accounts[key][i] 只给我数字,Document.write(sales_new_accounts[key] 给我未定义 @bsapaka -- 你必须在循环内使用它 -- key 在循环外什么都不是 是的,我确实在 for 循环中使用了它【参考方案3】:

是的,您可以遍历它,因为它是有效的 json。

首先,您需要将 json 转换为 javascript 可以迭代的内容,您可以使用 JSON.parse() (MDN) 来完成。我假设你上面描述的'json'是一个'json'字符串,所以:

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

试一试,否则您仍然可以使用其他人提交的其他解决方案,或者可以使用。这就是我的做法!!

【讨论】:

小心 forEach 函数,因为某些浏览器不支持它,例如 IE8 (caniuse.com/#search=forEach) 这可能是一个问题,是的,这就是为什么我说试一试,如果它不起作用,那么使用人们提交的其他解决方案:)

以上是关于如何遍历这个json对象(不使用jquery)[重复]的主要内容,如果未能解决你的问题,请参考以下文章

jquery each如何遍历出这样的json到页面

转 jquery遍历json数组方法

jquery json遍历节点的问题

jquery如何遍历dom对象

jquery 对 Json 的各种遍历

jQuery获取json数据