带有自定义JSON格式的Ember RESTAdapter

时间:2014-08-19 19:05:16

标签: javascript json model-view-controller ember.js

我目前正在享受潜入Ember并学习完整的前端MVC解决方案。

目前,我有点难以从我们的API获取数据,因为它不符合Ember's Adapter所要求的标准。目前,由于第三方应用程序的依赖性,我们的团队无法更改API / JSON响应的结构。

RESTAdapter正在寻找像这样的JSON:

{
  'episodes' : [
        {
            id : '1',
            title : 'my first title'
        }
    ]
}

不幸的是,我们回来的是一个数组,每个剧集作为一个对象,即它不能是具有对象数组值的键。

[
    {
        id : 1,
        title : 'my first title'
    },
    {  
        id : 2,
        title : 'my second title'
    }
]

有人可以提供有关如何扩展DS.RESTAdapter以遵循此格式的帮助吗?

同样,我们的服务器开发人员无法更改API,因此我们必须按原样接受JSON响应。

由于

1 个答案:

答案 0 :(得分:1)

在序列化程序中覆盖extractArray。然后,您可以修改有效负载以匹配正在查找的余烬数据。

App.ApplicationSerializer = DS.RESTSerializer.extend({
  extractArray: function(store, type, payload){
    var plural = Ember.String.pluralize(type.typeKey),
        fixed = {};
    fixed[plural] = payload;
    return this._super(store, type, fixed);
  }
});

示例:http://emberjs.jsbin.com/OxIDiVU/953/edit