我需要递归转换json对象到另一个json对象的帮助。递归转换json对象
我输入对象是这样的:
var my_obj = {
"id": 22,
"eventTypeId": 37,
"eventTypeName": "CommonOnly",
"parentEvent": {
"id": 21,
"eventTypeId": 35,
"eventTypeName": "FullTest",
"parentEvent": {
"id": 20,
"parentEvent": null,
"eventTypeId": 38,
"eventTypeName": "FullTest"
}
},
"childrenEvents": [
{
"id": 24,
"parentEventId": 22,
"eventTypeId": 36,
"eventTypeName": "BlindedTest",
"childrenEvents": []
},
{
"id": 23,
"parentEventId": 22,
"eventTypeId": 38,
"eventTypeName": "OneCustom",
"childrenEvents": []
}
]
}
我想输出是:
var my_obj = {
"id": 20,
"eventTypeId": 38,
"parentEvent": null,
"eventTypeName": "FullTest",
"childrenEvents": [{
"id": 21,
"eventTypeId": 35,
"eventTypeName": "FullTest",
"childrenEvents": [
{
"id": 22,
"eventTypeId": 37,
"eventTypeName": "CommonOnly",
"childrenEvents": [
{
"id": 24,
"parentEventId": 22,
"eventTypeId": 36,
"eventTypeName": "BlindedTest",
"childrenEvents": []
}, {
"id": 23,
"parentEventId": 22,
"eventTypeId": 38,
"eventTypeName": "OneCustom",
"childrenEvents": []
}
]
}
]
}]
}
所以,我希望能够得到一个对象,其中第二parentEvent
与parentEvent = null
已成为一个根元素,与数组childrenEvents
,里面的子数组将与其自己的第一个父事件对象childrenEvents
array和这个数组的内部我想把现有的根对象与它自己的childrenEvents
array
我很感谢有人能帮我解决它。提前致谢。
我尝试
function rebuild(input)
{
var childrenEvents = [] ;
for (f in input.parentEvent) // we may have attributes other than "age"
if (f.parentEvent == null) {
f.parentEvent.push(childrenEvents);
}
else {
f.parentEvent.push(input.parentEvent[f]);
}
if (input.childrenEvents.length !== 0)
{
input.parentEvent[f].push(input.childrenEvents)
}
return input;
}
console.log(rebuild($scope.myObj))
});
请出示你已经试过什么不工作....否则它只是看起来像你期望别人为你的代码这一点,所以是不是一个代码编写服务 – charlietfl
@charlietfl让我们夫妇分钟 – antonyboom
@charlietfl请检查更新回答 – antonyboom