Spring Boot http消息转换器有时会序列化null
Posted
技术标签:
【中文标题】Spring Boot http消息转换器有时会序列化null【英文标题】:Spring Boot http message converter serialize null sometimes 【发布时间】:2020-02-04 22:10:14 【问题描述】:在 Spring boot 中,是否可以有许多不同版本的 gson 或 Jackson http 转换器,并在我需要特定类型的数据格式时动态使用它们?
【问题讨论】:
嗨,Kingj,您能否提供更多有关您想要做什么的信息?例如您的Converter
、Objects that you need to serialize as null or not dinamically
代码?
其 null 的原因之一是它无法解析对象并引发您捕获并抑制的异常(可能不是故意的)。在您的班级顶部添加@JsonIgnoreProperties(ignoreUnknown=true)
@Kingj 完成,我添加了一个您可以实施的答案。
有时您想序列化相同实体的空值或者这些是不同的实体?
【参考方案1】:
您必须为 GsonHttpMessageConverter
创建两个 bean,第一个具有默认设置,第二个具有通过以下方式序列化 null 的设置:
@Bean
public GsonHttpMessageConverter gsonHttpMessageConverter()
return buildGsonHttpMessageConverter(MapperUtil.getGsonInstance());
@Bean
public GsonHttpMessageConverter gsonHttpMessageConverterWithNulls()
return buildGsonHttpMessageConverter(MapperUtil.getGsonInstanceSerializeNulls());
private GsonHttpMessageConverter buildGsonHttpMessageConverter(final Gson gson)
final GsonHttpMessageConverter converter = new GsonHttpMessageConverter();
converter.setGson(gson);
return converter;
当您想使用其中之一时,请调用@Qualifier("someBean")
注释。通过以下方式:
@Autowired
@Qualifier("gsonHttpMessageConverter")
GsonHttpMessageConverter gsonHttpMessageConverter;
@Autowired
@Qualifier("gsonHttpMessageConverterWithNulls")
GsonHttpMessageConverter gsonHttpMessageConverterWithNulls;
【讨论】:
好的,如果这个答案解决了你的问题,请标记为答案,以便其他人可以得到帮助。以上是关于Spring Boot http消息转换器有时会序列化null的主要内容,如果未能解决你的问题,请参考以下文章
spring boot框架学习7-spring boot的web开发-自定义消息转换器
我应该如何在 Spring Boot 中配置 httpMessageConverters 以将消息转换为所需的格式?