如何在angularjs / javascript中更改/添加JSON结构中的字段

时间:2015-06-26 08:40:12

标签: javascript json

我正在使用angularjs http get方法来获取数据,我得到的JSON格式是:

{"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;

添加这些字段。但是这里出了点问题。

1 个答案:

答案 0 :(得分:1)

您的请求将无效,正如“无处男人”所述,因为您此刻正在为同一个键设置不同的值,以便仅显示最后一个。在我看来,最好的解决方案是拥有一系列对象。

public void onVisualAdviceChanged(final boolean firstVisualAdviceChanged, final boolean secondVisualAdviceChanged,
final SKNavigationState navigationState) {          
if (firstVisualAdviceChanged) {
               SKCrossingDescriptor currentImageCrossingDescriptor =
navigationState.getFirstCrossingDescriptor();
               String currentVisualAdviceImage = "[base path of map resouces]/current_advice_image.png";
               final SKVisualAdviceColor firstVisualAdviceColor = new SKVisualAdviceColor();
               firstVisualAdviceColor.setAllowedStreetColor(new
float[]{0.2f, 0.2f, 0.2f, 0.4f});
               firstVisualAdviceColor.setForbiddenStreetColor(new
float[]{0.2f, 0.2f, 0.2f, 0.7f});
               firstVisualAdviceColor.setRouteStreetColor(new
float[]{0.2f, 0.2f, 0.2f, 1});

SKNavigationManager.getInstance().renderVisualAdviceImage(currentImageCrossingDescriptor,
   currentVisualAdviceImage, firstVisualAdviceColor);

}

请参阅此plunkr http://plnkr.co/edit/5UdDEl?p=preview