使用FastJson处理返回数据,默认不会返回数据为null的属性,这对前端进行编码的时候会造成一些困扰,但是通过配置FastJson可以解决这个困扰。
PS:
1、
@Configuration 该注解使得该类被SpringBoot启动加载
configureMessageConverters 该方法是解析返回数据用到的方法,所以需要重写
通过该类的处理,返回的json数据中如果包含集合为null时将会返回[],属性为null时将会返回""(空字符串)
2、
该类实现了WebMvcConfigurer接口,重写configureMessageConverters方法
不要继承WebMvcConfigurationSupport来处理,会导致跳转视图失败
@Configuration
public class FastJsonConfiguration implements WebMvcConfigurer {
@Override
public void configureMessageConverters(List<HttpMessageConverter<?>> converters) {
super.configureMessageConverters(converters);
FastJsonHttpMessageConverter fastJsonHttpMessageConverter = new FastJsonHttpMessageConverter();
FastJsonConfig fastJsonConfig = new FastJsonConfig();
fastJsonConfig.setSerializerFeatures(
SerializerFeature.DisableCircularReferenceDetect, // 防止循环引用
SerializerFeature.WriteNullListAsEmpty, // 空集合返回[],不返回null
SerializerFeature.WriteNullStringAsEmpty, // 空字符串返回"",不返回null
SerializerFeature.WriteMapNullValue
);
fastJsonHttpMessageConverter.setFastJsonConfig(fastJsonConfig);
//处理中文乱码问题
List<MediaType> fastMediaTypes = new ArrayList<>();
fastMediaTypes.add(MediaType.APPLICATION_JSON_UTF8);
fastJsonHttpMessageConverter.setSupportedMediaTypes(fastMediaTypes);
converters.add(fastJsonHttpMessageConverter);
}
}
网友评论