【发布时间】:2019-03-15 06:02:43
【问题描述】:
我正在尝试将深层嵌套的 JSON 对象从一种结构更改为另一种结构。 为了能够以正确的格式使用它来使用名为 jQuery Nestable 的库。
这是我的原始格式:
{
"scanned": {
"a3": {
"value": 906
},
"value": 23667
},
"total": {
"printed": {
"black": {
"value": 44
},
"color": {
"value": 57
},
"value": 101
},
"value": 101
}
}
使用该库所需的 JSON 格式如下:
[{
"id": "scanned: 23667",
"children": [{
"id": "a3: 906"
}]
}, {
"id": "total: 101",
"children": [{
"id": "printed: 101",
"children": [{
"id": "black: 44"
}, {
"id": "color: 57"
}]
}]
}]
我试图用递归函数遍历那棵树,但到目前为止还没有达到预期的结果:
Object.keys(o).forEach(function (k) {
if (o[k] !== null && typeof o[k] === 'object') {
if(parent) {
console.log(parent);
if(!o.children) {
o.children = [];
}
o.children.push({id: k + ": " + o[k].value})
} else {
o.id = k + ": " + o[k].value
}
_this.iter(o[k], k);
return;
}
});
谁能给我一个工作示例?
【问题讨论】:
标签: javascript json recursion javascript-objects traversal