Springboot處理返回的參數爲null

#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;

阿里雲地址(https://yq.aliyun.com/users/article?spm=a2c4e.11153940.headeruserinfo.3.2b9f291aIvV32t)

歡迎關注公衆號,查看更多內容 :
XG54_9_WXMH_5X_HB_H_7V

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章