您现在的位置是:首页 > 文章详情

SpringBoot 返回参数为null,不返回的处理

日期:2019-08-06点击:1038

SpringBoot 整合 fastjson

Springboot处理返回的参数为null、或者不返回

一、通过继承WebMvcConfigurerAdapter,重写configureMessageConverters方法实现

 @Configuration
 public class fastJsonConfig extends WebMvcConfigurerAdapter {
     @Autowired
     private LogCostInterceptor logCostInterceptor;
 
     /**
      * 使用阿里 fastjson 作为JSON MessageConverter
      * @param converters
      */
     @Override
     public void configureMessageConverters(List<HttpMessageConverter<?>> converters) {
         FastJsonHttpMessageConverter converter = new FastJsonHttpMessageConverter();
         FastJsonConfig config = new FastJsonConfig();
         config.setSerializerFeatures(
                 //json格式输出
                 SerializerFeature.PrettyFormat,
                 // 保留map为空的字段
                 SerializerFeature.WriteMapNullValue,
                 // 将String类型的null转成""形式
                 SerializerFeature.WriteNullStringAsEmpty,
                 // 将Number类型的null转成0,也可以理解为Integer
                 SerializerFeature.WriteNullNumberAsZero,
                 // 将List类型的null转成[],而不是“””
                 SerializerFeature.WriteNullListAsEmpty,
                 // Boolean类型的null转成false
                 SerializerFeature.WriteNullBooleanAsFalse,
                 // 处理可能循环引用的问题
                 SerializerFeature.DisableCircularReferenceDetect);
         converter.setFastJsonConfig(config);
         converter.setDefaultCharset(Charset.forName("UTF-8"));
         List<MediaType> mediaTypeList = new ArrayList<>();
         mediaTypeList.add(MediaType.APPLICATION_JSON);
         converter.setSupportedMediaTypes(mediaTypeList);
         converters.add(converter);
     }
 }

二、在Springboot启动类中

 @Bean
 public HttpMessageConverters fastJsonConverters() {
     FastJsonHttpMessageConverter4 fastConverter = new FastJsonHttpMessageConverter4();
     FastJsonConfig fastJsonConfig = new FastJsonConfig();
     fastJsonConfig.setSerializerFeatures(SerializerFeature.PrettyFormat, SerializerFeature.IgnoreNonFieldGetter,
             SerializerFeature.WriteMapNullValue, SerializerFeature.WriteNullStringAsEmpty);
     fastConverter.setFastJsonConfig(fastJsonConfig);
     List supportedMediaTypes = new ArrayList();
     supportedMediaTypes.add(new MediaType("text", "json", Charset.forName("utf8")));
     supportedMediaTypes.add(new MediaType("application", "json", Charset.forName("utf8")));
     fastConverter.setSupportedMediaTypes(supportedMediaTypes);
     HttpMessageConverter<?> converter = fastConverter;
     return new HttpMessageConverters(converter);
 }

三、 在实体类中,添加: @JSONField注解,如果为false,接口中不会返回这个字段。

 @JSONField(serialize = false)
 private String password;

源码获取:
github
欢迎关注公众号,查看更多内容 :
XG54_9_WXMH_5X_HB_H_7V

原文链接:https://yq.aliyun.com/articles/713119
关注公众号

低调大师中文资讯倾力打造互联网数据资讯、行业资源、电子商务、移动互联网、网络营销平台。

持续更新报道IT业界、互联网、市场资讯、驱动更新,是最及时权威的产业资讯及硬件资讯报道平台。

转载内容版权归作者及来源网站所有,本站原创内容转载请注明来源。

文章评论

共有0条评论来说两句吧...

文章二维码

扫描即可查看该文章

点击排行

推荐阅读

最新文章