2015-06-26 97 views
0

我使用angularjs HTTP GET方法來獲取數據,這我得到的JSON格式是:如何更改/在JSON結構angularjs/JavaScript的加場

{"SITE1":[ 
    { 
     "name":"name1", 
     "status":"0", 
     "id":23, 
     "isDeleted":false 
    }, 
    { 
     "name":"name2", 
     "status":"0", 
     "id":13, 
     "isDeleted":false 
    }], 

"SITE2":[ 
    { 
     "name":"name3", 
     "status":"0", 
     "id":2, 
     "isDeleted":false 
    } 
    ]} 

,但我想數據是在格式

{"location" : "SITE1", 
"services" : [ 
     { 
     "name":"name1", 
     "status":"0", 
     "id":23, 
     "isDeleted":false 
     }, 
     { 
     "name":"name2", 
     "status":"0", 
     "id":13, 
     "isDeleted":false 
     }], 
    "location" : "SITE2", 
    "services":[ 
     { 
     "name":"name3", 
     "status":"0", 
     "id":2, 
     "isDeleted":false 
     } 
    ]} 

請幫助在這,如何做到這一點。 我試過使用

object["location"] = key; 
object["status"] = value; 

添加這些字段。但在這方面出了問題。

+0

很抱歉,但你想要的版本意味着你想** **單一對象具有相同的屬性** **多時間。這沒有意義。 –

+0

你可能想要使用一組對象,例如[{「location」:「SITE1」,「services」:[{...}]},{「location」:「SITE2」,「services」:[ {...}]}] – valepu

回答

1

您的要求將不起作用,正如「無處男」所述,因爲您目前正在爲同一個鍵設置不同的值,以便只顯示最後一個值。我認爲最好的解決方案是擁有一組對象。

var temp=[]; 
angular.forEach(values, function(data, index){ 
    var tempObj={}; 
    tempObj.location=index; 
    tempObj.services=data; 
    temp.push(tempObj); 
}); 
return temp; 

看到這個plunkr http://plnkr.co/edit/5UdDEl?p=preview

+0

謝謝瓦爾普,這就是我一直在尋找的。 –

+0

不客氣 – valepu