我有以下JSON
对象:
{
"status": "CREATED",
"overrides": {
"name": "test_override"
},
"package_name": "test",
"name": "app1",
"defaults": {
"job": {
"example": {
"executors_num": "2",
"freq_in_mins": "180",
"executors_mem": "256M",
"job_name": "batch_example"
}
}
}
}
我想将上述
JSON
对象转换成类似下面这样的格式。基本上是为每个嵌套对象添加一个数组。{
"children": [
{
"status": "CREATED"
},
{
"obj": "overrides",
"children": [
{
"name": "test_override"
}
]
},
{
"package_name": "test"
},
{
"name": "app1"
},
{
"obj": "defaults",
"children": [
{
"obj": "job",
"children": [
{
"obj": "example",
"children": [
{
"executors_num": "2",
"freq_in_mins": "180",
"executors_mem": "256M",
"job_name": "batch_example"
}]
}]
}]
}
]
}
以下是我所拥有的代码:
function traverse(o, d) {
for (i in o) {
if (typeof(o[i])=="object") {
console.log(i, o[i]);
// considering only 'default' obj for now
if(i === 'defaults') {
d.children.push( {obj: i, "children" :[ o[i] ]});
}
traverse(o[i], d);
}
}
return d;
}
我最终得到了这个结果:
{"children":[{"obj":"defaults",
"children":[{"job":{"example":
{"executors_num":"2","freq_in_mins":"180","executors_mem":"256M","job_name":"batch_example"}}}]}]}
但是我似乎遇到了困难,不确定如何将children
数组添加到每个嵌套对象中。有什么建议吗?
traverse
? - TaoPRvar destJson = { children: [] }; var s = traverse(originalJson, destJson);
- Pavan