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