我正在尝试将Ajax帖子用于Spring @RestController.杰克逊与@Json存在问题… @Entity中的引用注释继承自(@Inheritance(strategy = InheritanceType.JOINED)).
我已经看到了很多有关这方面的问题和答案.截至目前,不允许永久更改父实体.我确实可以访问,并且可以暂时更改我的本地副本,因此我已经能够确认删除父级中的注释可能会修复它,可能是以破坏其他内容为代价.所以,我的解决方案是实现自定义JsonSerializer.
问题是它没有被调用;我想我已经从我所看到的那样做得很好.这是相关代码:
我在AppConfig文件中注册了@Bean.我尝试过方法体的变体;这只是最近一个不起作用的……
@Bean
public Jackson2ObjectMapperBuilder jackson2ObjectMapperBuilder() {
SimpleModule m = new SimpleModule();
m.addSerializer(Orchard.class,new OrchardSerializer());
return new Jackson2ObjectMapperBuilder().modules(m);
}
我提供了序列化器;下面的断点永远不会被触发……
public class OrchardSerializer extends JsonSerializer
我试图发布的实体……
@Entity
@Inheritance(strategy = InheritanceType.JOINED)
@JsonSerialize(using = OrchardSerializer.class)
public class Orchard extends Yard {
@OneToMany(fetch = FetchType.EAGER,cascade = CascadeType.ALL)
private List
如何注册自定义JsonSerializer以便在Ajax帖子上调用它?
最佳答案
好像你没有使用Spring Boot. AFAIK没有Spring Boot Jackson2ObjectMapperBuilder不会被自动检测到.如果要添加自定义序列化程序,则应在WebMvcConfigurerAdapter中执行此操作.
@Configuration
@EnableWebMvc
public class WebConfiguration extends WebMvcConfigurerAdapter {
@Override
public void configureMessageConverters(List
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。