Ember - 如何清理 JSON 响应

Ember - how to clean up JSON response

我是 EmberJS 的新手,不幸的是我不得不处理 JSON,它不包含根或 ID,我似乎找不到任何明确的方法来完成我正在做的事情尝试做,这只是为了清理响应。

我假设我需要使用 ember 序列化程序来执行此操作。

这是我目前从 api/locations:

中得到的
[
  {
    "uri": "/location/1",
    "name": "ATLANTA"
  },
  {
    "uri": "/location/2",
    "name": "NORTH VIRGINIA"
  }
]

我假设我需要它看起来像这样,具有根和 ID:

{
   "locations":[
     {
        "id":"1",
        "uri":"/location/1",
        "name":"ATLANTA"
     },
     {
        "id":"2",
        "uri":"/location/2",
        "name":"NORTH VIRGINIA"
     }
    ]
 }

我在 app/serializers/location.js

下添加了一个 JSONSerializer
import DS from 'ember-data';

export default DS.JSONSerializer.extend({
    // how can I manufacture an id here, say with index
    // how to I assign it to a root called "locations"
});

只需包含此 JSONSerializer,我就在商店中获得了一条记录,但它只有一条,我认为那是因为它们没有 ID,否则两个条目都会显示。

我需要有关如何开始处理这些数据的帮助和示例。我试过的例子没有做任何事情。

似乎 JSONSerializer 解决了我提到的根本问题,但我能够通过在序列化程序上尝试可用的方法来解决我的 ID 问题,直到找到有效的方法。我的最终解决方案如下所示:

 export default DS.JSONSerializer.extend({

    normalize: function(typeClass, hash) {
       hash['id'] = parseFloat(hash.uri.match(/\d+/g))
       return this._super.apply(this, arguments);
    }

 });

很简单,但是,哇,我找不到一个例子来说明如何做这样的事情。