[英]Parse Nested json Array into Separate json Objects with Node.js
[英]Separate Nested JSON objects
因此,我可能對此有些想法,但是我有一個帶有多層嵌套JSON對象的JSON數組,如下所示:
var OldJSON =
{
"data":{
"shifts":{
"data":[
{
"id":1234,
"entry_time":"2012-06-11 16:06:04",
"attendance_id":1
},
{
"id":4321,
"entry_time":"2014-07-23 17:29:04",
"attendance_id":2
}
]
},
"sites":{
"data":[
{
"id":4321,
"name":"John Doe",
"type":"field",
"bases":{
"data":[
{
"id":1234,
"type":"field",
"active":false
},
{
"id":4321,
"type":"field",
"active":true
}
]
}
},
{
"id":1234,
"name":"Jill Doe",
"type":"field",
"bases":{
"data":[
{
"id":1234,
"type":"field",
"active":false
},
{
"id":4321,
"type":"field",
"active":true
}
]
}
}
]
}
}
}
我要做的是將“基礎”對象與“站點”對象分離,並重新組織JSON,因此它看起來像這樣:
var NewJSON =
{
"data":{
"shifts":{
"data":[
{
"id":1234,
"entry_time":"2012-06-11 16:06:04",
"attendance_id":1
},
{
"id":4321,
"entry_time":"2014-07-23 17:29:04",
"attendance_id":2
}
]
},
"sites":{
"data":[
{
"id":4321,
"name":"John Doe",
"type":"field"
},
{
"id":1234,
"name":"Jill Doe",
"type":"field"
}
]
},
"bases":{
"data":[
{
"id":1234,
"type":"field",
"active":false
},
{
"id":4321,
"type":"field",
"active":true
}
]
}
}
}
我在下划線中在我的項目中使用Javascript和Angular。 因此,理想情況下,該解決方案將利用這三種解決方案之一。 我提出的所有內容看起來都很丑陋,所以我想知道是否有一種簡單的方法可以做我所忽略的事情。
這段代碼太丑了呢?
var data = JSON.parse(/*Your JSON */).data;
var bases = [];
var i;
var sites = data.sites.data;
var len = sites.length;
for (i = 0; i < len; i++) {
var site = sites[i];
var base = site.data.bases;
bases.push(base.date);
delete site.data.bases;
}
data.bases = {data : Array.prototype.concat.apply([], bases) };
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.