我想遍历JSON对象树,但找不到用于此目的的库。这看起来并不难,但感觉就像是在重新发明轮子。
在XML中,有很多教程展示了如何使用DOM遍历XML树:(
发布于 2009-04-06 18:47:08
JSON对象只是一个Javascript对象。这实际上就是JSON代表的: JavaScript对象表示法。因此,无论您选择“遍历”Javascript对象,您通常都会遍历JSON对象。
在ES2017中,您将执行以下操作:
Object.entries(jsonObj).forEach(([key, value]) => {
// do something with key and val
});
您总是可以编写一个函数来递归地下降到对象中:
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方法来做这些事情,因为它们使得编写这样的代码变得容易得多。
发布于 2012-01-24 20:34:35
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]);
}
}
}
发布于 2011-06-18 04:41:56
有一个新的库用于使用JavaScript遍历JSON数据,它支持许多不同的用例。
https://npmjs.org/package/traverse
https://github.com/substack/js-traverse
它适用于所有类型的JavaScript对象。它甚至可以检测周期。
它还提供了每个节点的路径。
https://stackoverflow.com/questions/722668
复制相似问题