[英]How to change structure of nested/recursive JSON
我有一个 JSON 数组,如下所示:
[
{id:1, name:"Name1", data1:"x", data2:"x", children:
[
{id:2, name:"Name2", data1:"x", data2:"x"},
{id:3, name:"Name3", data1:"x", data2:"x", children:[...]},
]
},
{text: ..... },
...
]
我需要做一个类似的 JSON 数组。 我只需要每个对象都具有等于name
text
属性。 和data
属性,它是除children
之外的旧属性的 JSON。
这在 Python 中不会是一个大问题(它可能需要一些递归)但我不知道如何让它在JavaScript
工作
所以这看起来像:
[
{text:"Name1", data:{id:1, name:"Name1", data1:"x", data2:"x"}, children:
[
{text:"Name2", data:{id:2, name:"Name2", data1:"x", data2:"x"}},
{text:"Name3", data:{id:3, name:"Name3", data1:"x", data2:"x"}, children:[...]},
]
},
{id:4 ..... },
...
]
@Glen K 帮助我发表评论。 我只是将Array.map
与mp
递归辅助函数一起使用。
mp = function (obj) {
var children = [];
if (obj.children && obj.children.length) {
children = obj.children.map(x => mp(x));
}
return {text: obj.name, data: obj, children:children}
};
new_json = old_json.map(x => mp(x));
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.