SpringBoot2.1配置FastJson

使用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> converters) {
        FastJsonHttpMessageConverter fastJsonHttpMessageConverter = new FastJsonHttpMessageConverter();
        FastJsonConfig fastJsonConfig = new FastJsonConfig();
        fastJsonConfig.setSerializerFeatures(
                // 防止循环引用
                SerializerFeature.DisableCircularReferenceDetect, 
                // 空集合返回[],不返回null
                SerializerFeature.WriteNullListAsEmpty, 
                // 空字符串返回"",不返回null
                SerializerFeature.WriteNullStringAsEmpty,
                SerializerFeature.WriteMapNullValue
        );
        fastJsonHttpMessageConverter.setFastJsonConfig(fastJsonConfig);

        //处理中文乱码问题
        List fastMediaTypes = new ArrayList<>();
        fastMediaTypes.add(MediaType.APPLICATION_JSON_UTF8);
        fastJsonHttpMessageConverter.setSupportedMediaTypes(fastMediaTypes);

        converters.add(fastJsonHttpMessageConverter);
    }
}

 

https://www.jianshu.com/p/88a5932d522e

你可能感兴趣的:(springboot)