fastjson序列化将Null设置为空字符串""等问题

版权声明:本文为博主原创文章,未经博主允许不得转载。 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

猜你喜欢

转载自blog.csdn.net/cnd2449294059/article/details/83312819