在国内项目中,阿里的fastjson包因其使用简单功能强大很多人喜欢在项目中使用,我也是其中一员。今天主要讨论的是在某些情况下因fastjson的默认配置删除了空的字段,这对于小项目的前端处理就有些恼火了,每次要验证所有的字段非空,为了简单还是将null值转换为空串比较方便。
下面就spring boot项目中存在该问题进行解决。
首先在web配置中找到fastjson的响应配置,如下:
@Bean
public HttpMessageConverters fastJsonHttpMessageConverters() {
FastJsonHttpMessageConverter fastConverter = new FastJsonHttpMessageConverter();
FastJsonConfig fastJsonConfig = new FastJsonConfig();
fastJsonConfig.setSerializerFeatures(
SerializerFeature.PrettyFormat,
SerializerFeature.WriteNullStringAsEmpty,
SerializerFeature.WriteNullListAsEmpty,
SerializerFeature.WriteNullNumberAsZero);
fastConverter.setFastJsonConfig(fastJsonConfig);
HttpMessageConverter> converter = fastConverter;
return new HttpMessageConverters(converter);
}
上面的配置中以下代码片段为配置fastjson不删除null的String字段,并将null字段返回空串:
fastJsonConfig.setSerializerFeatures(
SerializerFeature.PrettyFormat,
SerializerFeature.WriteNullStringAsEmpty,
SerializerFeature.WriteNullListAsEmpty,
SerializerFeature.WriteNullNumberAsZero);