给springboot设置t默认json解析器,最简单方式如下:
@Configuration
public class WebAppConfigurer implements WebMvcConfigurer {
/**
* 设置默认json解析器
*/
@Override
public void configureMessageConverters(List<HttpMessageConverter<?>> converters) {
// 创建FastJson信息转换对象
FastJsonHttpMessageConverter fastJsonHttpMessageConverter = new FastJsonHttpMessageConverter();
converters.add(0, fastJsonHttpMessageConverter);
}
....
}
这样改完后,用浏览器请求接口,发现中文都乱码了,所以要再优化下:
@Configuration
public class WebAppConfigurer implements WebMvcConfigurer {
/**
* 设置默认json解析器
*/
@Override
public void configureMessageConverters(List<HttpMessageConverter<?>> converters) {
// 创建FastJson信息转换对象
FastJsonHttpMessageConverter fastJsonHttpMessageConverter = new FastJsonHttpMessageConverter();
// 创建Fastjosn对象并设定序列化规则
FastJsonConfig fastJsonConfig = new FastJsonConfig();
fastJsonConfig.setSerializerFeatures(SerializerFeature.PrettyFormat);
fastJsonHttpMessageConverter.setFastJsonConfig(fastJsonConfig);
// 中文乱码解决方案
List<MediaType> mediaTypes = new ArrayList<>();
mediaTypes.add(MediaType.APPLICATION_JSON_UTF8); // 设定json格式且编码为UTF-8
fastJsonHttpMessageConverter.setSupportedMediaTypes(mediaTypes);
converters.add(0, fastJsonHttpMessageConverter);
}
....
}
SerializerFeature.PrettyFormat可以使输出的json格式化,更方便查看。
序列化规则的设置可以参考:
https://blog.csdn.net/u010246789/article/details/52539576
为了解决中文乱码问题,这里我们要设置编码格式为UTF-8
也可以通过以下方式设置:
@Bean public HttpMessageConverters fastJsonHttpMessageConverters(){}