美文网首页
SpringBoot2.1配置FastJson

SpringBoot2.1配置FastJson

作者: 也许________ | 来源:发表于2018-11-06 15:29 被阅读98次

使用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);
    }
}

相关文章

网友评论

      本文标题:SpringBoot2.1配置FastJson

      本文链接:https://www.haomeiwen.com/subject/kxeuxqtx.html