1. 程式人生 > >fastjson序列化將Null設定為空字串""等問題

fastjson序列化將Null設定為空字串""等問題

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