Springboot-FastJsonHttpMessageConverter(自定义消息转换器)不生效

在项目中使用FastJsonHttpMessageConverter 不生效

配置类
配置后失效一直很疑惑
查看消息转换器集合
通过上述方式查看 确认自定义的FastJsonHttpMessageConverter 排序在最后,
根据消息转换器的应用规则,会顺序选择符合要求的消息转换器,
MappingJackson2HttpMessageConverter 在FastJsonHttpMessageConverter 之前,这样会使用MappingJackson2HttpMessageConverter 进行消息转换 ;
确认原因后 就将自定义消息转换器添加MappingJackson2HttpMessageConverter 前面就可以;

@Bean
    public HttpMessageConverters fastJsonHttpMessageConverters() {
        /**
         * 1.先定义一个convert转换消息的对象 
         * 2.添加fastjson的配置信息,比如:是否要格式化返回的json数据 
         * 3.在convert中添加配置信息 
         * 4.将convert添加到converters当中
         */
        // 1.先定义一个convert转换消息的对象
        FastJsonHttpMessageConverter fjc = new FastJsonHttpMessageConverter();
        List<MediaType> mediaTypes = new ArrayList<>(16);
        mediaTypes.add(MediaType.APPLICATION_ATOM_XML);
        mediaTypes.add(MediaType.APPLICATION_FORM_URLENCODED);
        mediaTypes.add(MediaType.APPLICATION_JSON);
        mediaTypes.add(MediaType.APPLICATION_OCTET_STREAM);
        fjc.setSupportedMediaTypes(mediaTypes);
        FastJsonConfig fj = new FastJsonConfig();
        fj.setSerializerFeatures(
                SerializerFeature.QuoteFieldNames,
                SerializerFeature.WriteMapNullValue,
                SerializerFeature.WriteNullListAsEmpty,
                SerializerFeature.WriteNullNumberAsZero,
                SerializerFeature.WriteNullBooleanAsFalse,
                SerializerFeature.WriteNullStringAsEmpty,
                SerializerFeature.BrowserCompatible,
                SerializerFeature.BrowserCompatible,
                SerializerFeature.WriteSlashAsSpecial,
                SerializerFeature.WriteDateUseDateFormat,
                SerializerFeature.DisableCircularReferenceDetect
        );
        fjc.setFastJsonConfig(fj);
        return new HttpMessageConverters(fjc);
    }

这样就可以了

参考:https://blog.csdn.net/qq_26878363/article/details/97389275


版权声明:本文为qq825478739原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。