美文网首页
2018-01-09spring boot 下循环引用引起转js

2018-01-09spring boot 下循环引用引起转js

作者: 624c95384278 | 来源:发表于2018-01-09 14:52 被阅读0次

    今天在spring boot下用spring data jpa配置好映射关系后发现查询没问题,但是转json返回给浏览器就会报栈溢出。

    image.png

    这是因为对象中的循环引用引起不断递归
    我选择了切换json转换器为fastjson,fastjson默认支持消除对同一对象循环引用
    但是切换后会出现中文乱码,下面附上fastjson配置方法与乱码解决方法。

    @Configuration
    public class FastJsonConfiguration extends WebMvcConfigurerAdapter {
        /**
         * 修改自定义消息转换器
         *
         * @param converters 消息转换器列表
         */
        @Override
        public void configureMessageConverters(List<HttpMessageConverter<?>> converters) {
            System.out.println("fastjson配置读取");
            //调用父类的配置
            super.configureMessageConverters(converters);
            //创建fastJson消息转换器
            FastJsonHttpMessageConverter fastConverter = new FastJsonHttpMessageConverter();
            //创建配置类
            FastJsonConfig fastJsonConfig = new FastJsonConfig();
            //修改配置返回内容的过滤
            fastJsonConfig.setSerializerFeatures(
    //                SerializerFeature.DisableCircularReferenceDetect,
                    SerializerFeature.WriteMapNullValue,
                    SerializerFeature.WriteNullStringAsEmpty
            );
            fastConverter.setFastJsonConfig(fastJsonConfig);
            //处理中文乱码问题
            List<MediaType> fastMediaTypes = new ArrayList<>();
            fastMediaTypes.add(MediaType.APPLICATION_JSON_UTF8);
            fastConverter.setSupportedMediaTypes(fastMediaTypes);
            converters.add(fastConverter);
            //将fastjson添加到视图消息转换器列表内
            converters.add(fastConverter);
        }
    }
    
    
    • WriteNullListAsEmpty :List字段如果为null,输出为[],而非null
    • WriteNullStringAsEmpty : 字符类型字段如果为null,输出为"",而非null
    • DisableCircularReferenceDetect :消除对同一对象循环引用的问题,默认为false(如果不配置有可能会进入死循环)
    • WriteNullBooleanAsFalse:Boolean字段如果为null,输出为false,而非null
    • WriteMapNullValue:是否输出值为null的字段,默认为false。

    相关文章

      网友评论

          本文标题:2018-01-09spring boot 下循环引用引起转js

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