首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >使用JavaScript遍历JSON对象树的所有节点

使用JavaScript遍历JSON对象树的所有节点
EN

Stack Overflow用户
提问于 2009-04-07 02:45:16
回答 11查看 260K关注 0票数 164

我想遍历JSON对象树,但找不到用于此目的的库。这看起来并不难,但感觉就像是在重新发明轮子。

在XML中,有很多教程展示了如何使用DOM遍历XML树:(

EN

回答 11

Stack Overflow用户

发布于 2009-04-06 18:47:08

JSON对象只是一个Javascript对象。这实际上就是JSON代表的: JavaScript对象表示法。因此,无论您选择“遍历”Javascript对象,您通常都会遍历JSON对象。

在ES2017中,您将执行以下操作:

代码语言:javascript
复制
Object.entries(jsonObj).forEach(([key, value]) => {
    // do something with key and val
});

您总是可以编写一个函数来递归地下降到对象中:

代码语言:javascript
复制
function traverse(jsonObj) {
    if( jsonObj !== null && typeof jsonObj == "object" ) {
        Object.entries(jsonObj).forEach(([key, value]) => {
            // key is either an array index or object key
            traverse(value);
        });
    }
    else {
        // jsonObj is a number or string
    }
}

这应该是一个很好的起点。我强烈推荐使用现代的javascript方法来做这些事情,因为它们使得编写这样的代码变得容易得多。

票数 84
EN

Stack Overflow用户

发布于 2012-01-24 20:34:35

代码语言:javascript
复制
function traverse(o) {
    for (var i in o) {
        if (!!o[i] && typeof(o[i])=="object") {
            console.log(i, o[i]);
            traverse(o[i]);
        } else {
            console.log(i, o[i]);
        }
    }
}
票数 39
EN

Stack Overflow用户

发布于 2011-06-18 04:41:56

有一个新的库用于使用JavaScript遍历JSON数据,它支持许多不同的用例。

https://npmjs.org/package/traverse

https://github.com/substack/js-traverse

它适用于所有类型的JavaScript对象。它甚至可以检测周期。

它还提供了每个节点的路径。

票数 33
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/722668

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档