将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);
	}
}

猜你喜欢

转载自blog.csdn.net/lrt890424/article/details/83627830
今日推荐