【问题标题】:Ember Data with Spring's @RequestBody and Object Identities带有 Spring 的 @RequestBody 和对象标识的 Ember 数据
【发布时间】:2016-06-21 14:39:10
【问题描述】:

我的后端是 Spring(Boot),我在它和 EmberJS 方面已经走得很远了。现在遇到了一个小问题,因为当我从 Ember-Data 创建新记录时,它会发布带有标识的对象:

{ "thing": {"name": "The Thing"} }

Jackson 提供的默认映射不假定身份,因此它无法将 JSON 映射到实体。我基本上有 3 个选项,我想知道是否还有其他人已经走上了这条路,以及他们是如何解决问题的。

选项 1 - 创建用身份包装我的实体的 DTO

public class Thing {
  private String name;
}

// use this for the @RequestBody
public class ThingDTO {
  private Thing thing;
}

选项 2 - 通过自定义映射器配置 Jackson 以将 JSON 反序列化为我的标准对象。

选项 3 - 为 Ember-Data 配置适配器/序列化程序,使其不包含对象标识。

【问题讨论】:

    标签: json spring ember.js spring-boot ember-data


    【解决方案1】:

    我使用@JsonRootName 并配置映射器来解开根值。

    @JsonRootName(value = "thing")
    public class Thing {
    
    }
    

    然后在Application.java中:

    @Bean
    public MappingJackson2HttpMessageConverter mappingJackson2HttpMessageConverter() {
        ObjectMapper mapper = new ObjectMapper();
        mapper.configure(DeserializationFeature.UNWRAP_ROOT_VALUE, true);
        MappingJackson2HttpMessageConverter converter =
                new MappingJackson2HttpMessageConverter(mapper);
        return converter;
    }
    

    【讨论】:

      猜你喜欢
      • 2013-05-03
      • 2022-01-04
      • 2020-12-16
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-03-25
      • 1970-01-01
      相关资源
      最近更新 更多