1. 程式人生 > >將spring boot 預設的jackson框架轉換為fastjson

將spring boot 預設的jackson框架轉換為fastjson

將spring boot 預設的jackson框架轉換為fastjson

fastjson可以預設將下劃線引數轉換為駝峰屬性。

實現程式碼:

一、新增依賴

<dependency>
    <groupId>com.alibaba</groupId>
    <artifactId>fastjson</artifactId>
    <version>1.2.47</version>
</dependency>

二、實現

1、定義WebParameterConfig類繼承WebMvcConfigurerAdapter

2、重寫方法configureMessageConverters()

@Configuration
public class WebParameterConfig extends WebMvcConfigurerAdapter {

	/**
	 * 替換框架json為fastjson
	 * @param converters
	 */
	@Override
	public void configureMessageConverters(List<HttpMessageConverter<?>> converters) {
		FastJsonHttpMessageConverter fastConverter = new FastJsonHttpMessageConverter();

		FastJsonConfig fastJsonConfig = new FastJsonConfig();

		//駝峰轉下劃線
		SerializeConfig serializeConfig=new SerializeConfig();
		serializeConfig.propertyNamingStrategy= PropertyNamingStrategy.SnakeCase;
		fastJsonConfig.setSerializeConfig(serializeConfig);
		//序列化格式
		fastJsonConfig.setSerializerFeatures(
				SerializerFeature.PrettyFormat,
				SerializerFeature.WriteNullStringAsEmpty
		);
		// 處理中文亂碼問題
		List<MediaType> fastMediaTypes = new ArrayList<>();
		fastMediaTypes.add(MediaType.APPLICATION_JSON_UTF8);
		fastConverter.setSupportedMediaTypes(fastMediaTypes);
		fastConverter.setFastJsonConfig(fastJsonConfig);

		//處理字串, 避免直接返回字串的時候被添加了引號
		StringHttpMessageConverter smc = new StringHttpMessageConverter(Charset.forName("UTF-8"));
		converters.add(smc);

		converters.add(fastConverter);
	}
}