我有一个包含分层数据的数组,我想将其转换为层次结构,但格式不同。我尝试使用递归方法,但它没有提供正确的数据
下面是我试图实现的代码
static convertConfigJson(data, finalResults = []) {
const configData = JSON.parse(JSON.stringify(data));
return configData.map((item) => {
const { name, type, value, path } = item;
let children = {}
if (type === 'Object') {
children = this.convertConfigJson(value, finalResults);
} else {
finalResults.push({
id: name,
name: name,
children: children
})
}
console.log('>>>>>>>>>', finalResults)
return finalResults;
});
}
下面是我从 API 获得的 JSON 数组
[
{
"name": "info",
"type": "Object",
"value": [
{
"name": "app",
"type": "Object",
"value": [
{
"path": "info.app",
"name": "encoding",
"type": "TEXT",
"value": "@project.build.sourceEncoding@"
},
{
"name": "java",
"type": "Object",
"value": [
{
"path": "info.app.java",
"name": "source",
"type": "TEXT",
"value": "@java.version@"
},
{
"path": "info.app.java",
"name": "target",
"type": "TEXT",
"value": "java.version@"
}
]
}
]
}
]
}
]
我想将上面的数组转换为以下格式,即将值数组更改为子数组
[
{
"name": "info",
"type": "Object",
"children": [
{
"name": "app",
"type": "Object",
"children": [
{
"path": "info.app",
"name": "encoding",
"type": "TEXT",
"value": "@project.build.sourceEncoding@"
},
{
"name": "java",
"type": "Object",
"children": [
{
"path": "info.app.java",
"name": "source",
"type": "TEXT",
"value": "@java.version@"
},
{
"path": "info.app.java",
"name": "target",
"type": "TEXT",
"value": "java.version@"
}
]
}
]
}
]
}
]