1

我正在使用 Ember Data 1.13.3。我想使用 JSONAPISerializer 中的 normalizeResponse 将旧的 JSON 格式转换为新的JSONAPI格式。

例如,我的 json 来自网络服务,例如

{
  user: { id: 1, name: 'wecc', accounts: [1, 2] },
  accounts: [
    { id: 1, email: 'wecc@sweden.se' },
    { id: 2, email: 'wecc@greece.gr' }
  ]
}

现在在我的 JSONAPISerializer 中,如何从旧的 json 中获取 JSONAPI 格式。我正在使用旧格式。但我希望该格式自动转换为 JSONAPI。像下面一个

{
  data: { 
    id: '1', 
    type: 'user', 
    attributes: {
      name: 'wecc'
    }, 
    relationships: {
      accounts: {
        data: [
          { id: '1', type: 'account' },
          { id: '2', type: 'account' }
        ]
      }
    }
  },
  included: [{ 
    id: '1',
    type: 'account',
    attributes: {
      email: 'wecc@sweden.se'
    }
  }, {
    id: '2',
    type: 'account',
    attributes: {
      email: 'wecc@greece.gr'
    }
  }]
}

我从 ember 本身找到了一些帮助。

http://emberjs.com/blog/2015/06/18/ember-data-1-13-released.html#toc_internal-format-change-to-json-api 他们建议使用normalizeResponse

4

1 回答 1

0

它不会自动发生。如果您还可以控制 REST API,我建议您对服务器本身的数据进行规范化。否则,正如您所建议的那样,它必须在 内发生normalizeResponse,但编写自定义代码以匹配您的数据格式。

另一个解决方案是暂时继续使用RESTSerializer并等到 JSON API 规范变得更流行一些。在接下来的几个月中,可能会为大多数服务器框架发布提供标准 JSON API 有效负载的工具。

于 2015-07-07T17:58:43.183 回答