簡體   English   中英

單獨的嵌套JSON對象

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM