繁体   English   中英

如何更改嵌套/递归 JSON 的结构

[英]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.mapmp递归辅助函数一起使用。

    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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM