版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/cnd2449294059/article/details/83312819
fastjson序列化将Null设置为空字符串""等问题
Spring Boot使用FastJson解析JSON数据的方法
Spring Boot默认使用json格式从后台返回数据给前台,当返回的String类型或者List<>类型数据为null时,我们希望返回的是""或者[],此时就需要使用fastjson来转换。使用fastjson需要注意以下事项:
1、加入fastjson依赖项
<!--添加fastjson解析JSON数据-->
<dependency>
<groupId>com.alibaba</groupId>
<artifactId>fastjson</artifactId>
<version>1.2.16</version>
</dependency>
2、配置fastjson
写一个配置类
@Configuration
public class WebMvcConfig extends WebMvcConfigurerAdapter {
@Override
public void configureMessageConverters(List<HttpMessageConverter<?>> converters) {
// 初始化转换器
FastJsonHttpMessageConverter fastConvert = new FastJsonHttpMessageConverter();
// 初始化一个转换器配置
FastJsonConfig fastJsonConfig = new FastJsonConfig();
// 设置fastjson的SerializerFeature序列化属性
fastJsonConfig.setSerializerFeatures(SerializerFeature.PrettyFormat, SerializerFeature.WriteNullStringAsEmpty,SerializerFeature.WriteMapNullValue,SerializerFeature.WriteNullListAsEmpty);
// 将配置设置给转换器并添加到HttpMessageConverter转换器列表中
fastConvert.setFastJsonConfig(fastJsonConfig);
converters.add(fastConvert);
super.configureMessageConverters(converters);
}
}
3、fastjson的SerializerFeature序列化属性
QuoteFieldNames———-输出key时是否使用双引号,默认为true
WriteMapNullValue——–是否输出值为null的字段,默认为false
WriteNullNumberAsZero—-数值字段如果为null,输出为0,而非null
WriteNullListAsEmpty—–List字段如果为null,输出为[],而非null
WriteNullStringAsEmpty—字符类型字段如果为null,输出为”“,而非null
WriteNullBooleanAsFalse–Boolean字段如果为null,输出为false,而非null