Ember.js 使用余烬数据获取非常规JSON

Ember.js 使用余烬数据获取非常规JSON,ember.js,ember-data,Ember.js,Ember Data,我使用的是Ember 1.5.1和Ember data 1.0 beta,我使用的是DS.RestaAdapter类。 我有两种模式,比如说Post和User。服务器在GET请求时使用以下JSON进行响应 { data: [ .... ] } 数据是一个由用户或帖子组成的数组,具体取决于请求 RestAdapter的设计理念是,与服务器交换的JSON应该是传统的,它希望从服务器返回的JSON应该是这样的 { posts: [ .... ] } 或 视请求而定 如何自定义余烬数据来处理

我使用的是Ember 1.5.1和Ember data 1.0 beta,我使用的是DS.RestaAdapter类。 我有两种模式,比如说
Post
User
。服务器在GET请求时使用以下JSON进行响应

{
  data: [ .... ]
}
数据
是一个由
用户
帖子组成的数组,具体取决于请求

RestAdapter的设计理念是,与服务器交换的JSON应该是传统的,它希望从服务器返回的JSON应该是这样的

{
  posts: [ .... ]
}

视请求而定


如何自定义余烬数据来处理这种情况?

我能够通过自定义
提取数组
方法来处理上述问题中描述的情况

// override extractArray method 
App.PostSerializer = DS.RESTSerializer.extend({
  extractArray: function(store, type, payload, id, requestType) {
    var myposts = payload.data;
    var newpayload = { posts: myposts };
    return this._super(store, type, newpayload, id, requestType);
  }
});
以下资源非常有用:


谢谢!不幸的是,目前我无法测试该解决方案,因为服务器还没有准备好。只要我检查它是否有效,我就会写下答案。只是为了好玩,如果你想使用
find
方法而不是
findAll
,你可以使用extractSingle。
// override extractArray method 
App.PostSerializer = DS.RESTSerializer.extend({
  extractArray: function(store, type, payload, id, requestType) {
    var myposts = payload.data;
    var newpayload = { posts: myposts };
    return this._super(store, type, newpayload, id, requestType);
  }
});