【发布时间】:2018-11-21 07:16:21
【问题描述】:
我想将下面的 JSON 转换为对象数组。我在递归方面很糟糕,我整天都在挣扎。请帮助我们将不胜感激。
{
"org_name":"paradise island",
"daughters" : [
{
"org_name": "banana tree",
"daughters": [
{"org_name":"Yellow Banana"},
{"org_name":"Brown Banana"}
]
},
{
"org_name": "big banana tree",
"daughters": [
{"org_name":"green banana"},
{"org_name":"yellow banana"},
{
"org_name": "Black banana",
"daughters": [
{"org_name": "red spider"}
]
}
]
}
]
}
我希望它变成如下:
[
{id:1, name:'paradise island', parent: null},
{id:2, name:'Banana Tree', parent: 1},
{id:3, name:'yellow banana', parent: 2}
]
顺序无关紧要。重要的是根据父母与孩子的正确身份关系。我打算将 id 生成为 UUID。但你可以随心所欲地生成它。
【问题讨论】:
-
当你说你希望它被转换时,你想要一些代码来完成它,还是你想要你给我们的 JSON 像底部的那样格式化?
-
向我们展示您的尝试!
-
对不起,伙计们。这是我尝试过的...
const uuidv4 = require('uuid/v4'); function serialize(payload) { return (function traverse(res, payload, parent) { var row = {}, uuid = '', prop; for(prop in payload) { uuid = uuidv4() if(typeof payload[prop] === 'Array') { traverse(res, payload[prop], uuid) } else { row.id = uuid row.name = payload[prop] row.parent = parent res.push(row); } } return res })(res = [], payload, parent = 'null') }我可能会错过什么
标签: javascript json tree