I have one array that contains hierarchical data, i wan to convert it to hierarchy but in different format. I tried to use recursive method but its not giving proper data
Below is my code what i tried to implement
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;
});
}
Below is JSON array that i am getting from API
[
{
"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@"
}
]
}
]
}
]
}
]
I want to convert above array in below format i.e. change value array to children
[
{
"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@"
}
]
}
]
}
]
}
]