Spring boot 从Ember js(Ember cli)向Spring启动应用程序发布请求

Spring boot 从Ember js(Ember cli)向Spring启动应用程序发布请求,spring-boot,ember.js,Spring Boot,Ember.js,这是我在发出POST请求时从Ember js获得的JSON格式。我使用RestAdapter进行API调用 `{ "programmer": { "firstName": "Janaki", "lastName": "Rathinam" } }` 但我的弹簧靴只能接受 { "Programmer": { "id": 1, "firstName": "Maha", "lastName": "Shankar"

这是我在发出POST请求时从Ember js获得的JSON格式。我使用RestAdapter进行API调用

`{
   "programmer": {
      "firstName": "Janaki",
      "lastName": "Rathinam"
    }
 }`
但我的弹簧靴只能接受

{
    "Programmer": {
      "id": 1,
      "firstName": "Maha",
      "lastName": "Shankar"
    }
}
如何解决这个不匹配的JSON,以便我可以从emberjs进行POST调用。
添加序列化程序可以解决我的问题吗?如果是,如何为此编写序列化程序?

您可以使用payloadKeyFromModelName覆盖传出请求的根密钥。默认情况下,RESTSerializer返回模型名称的简化版本

对于名为Programmer的模型,其模型名将是字符串
Programmer
。RESTSerializer将其发送到服务器,并将
编程器
作为JSON负载中的根键:

{
   "programmer": {
      "firstName": "Janaki",
      "lastName": "Rathinam"
    }
 }
在您的情况下,您可能需要大写的根对象:

首先运行
$ember生成序列化程序应用程序
,然后包括以下内容:

app/serializers/application.js

import DS from 'ember-data';
import { capitalized } from '@ember/string';

export default DS.RESTSerializer.extend({
  payloadKeyFromModelName(modelName) {
    return capitalized(modelName);
  }
});
结果将是一个大写为p的根:

{
   "Programmer": {
      "firstName": "Janaki",
      "lastName": "Rathinam"
    }
 }
余烬文件: