最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

spring boot 下對JSON返回值去除null和空字段操作

 更新時間:2020年10月09日 09:22:07   作者:Gogym  
這篇文章主要介紹了spring boot 下對JSON返回值去除null和空字段操作,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧

在開發(fā)過程中,我們需要統(tǒng)一返回前端json格式的數(shù)據(jù),但有些接口的返回值存在 null或者""這種沒有意義的字段。

不僅影響理解,還浪費帶寬,這時我們可以統(tǒng)一做一下處理,不返回空字段,或者把NULL轉(zhuǎn)成“”,spring 內(nèi)置的json處理框架是Jackson。我們可以對它配置一下達到目的

直接看代碼,很簡單.

/**
 * 〈返回json空值去掉null和""〉 〈功能詳細描述〉
 * 
 * @author gogym
 * @version 2017年10月13日
 * @see JacksonConfig
 * @since
 */
@Configuration
public class JacksonConfig
{
  @Bean
  @Primary
  @ConditionalOnMissingBean(ObjectMapper.class)
  public ObjectMapper jacksonObjectMapper(Jackson2ObjectMapperBuilder builder)
  {
    ObjectMapper objectMapper = builder.createXmlMapper(false).build();
 
    // 通過該方法對mapper對象進行設置,所有序列化的對象都將按改規(guī)則進行系列化
    // Include.Include.ALWAYS 默認
    // Include.NON_DEFAULT 屬性為默認值不序列化
    // Include.NON_EMPTY 屬性為 空("") 或者為 NULL 都不序列化,則返回的json是沒有這個字段的。這樣對移動端會更省流量
    // Include.NON_NULL 屬性為NULL 不序列化,就是為null的字段不參加序列化
    //objectMapper.setSerializationInclusion(Include.NON_EMPTY);
 
    // 字段保留,將null值轉(zhuǎn)為""
    objectMapper.getSerializerProvider().setNullValueSerializer(new JsonSerializer<Object>()
  {
    @Override
    public void serialize(Object o, JsonGenerator jsonGenerator,
               SerializerProvider serializerProvider)
        throws IOException, JsonProcessingException
    {
      jsonGenerator.writeString("");
    }
  });
    return objectMapper;
  }
}

補充知識:springboot RestController 配置fastjson,實體為null時不顯示問題

Springboot 在和fastjson配合使用時,當返回實體為空時攔截不顯示問題。在實際業(yè)務中,不管返回實體是否為空,都需要顯示出來,如果為空則顯示null。

解決方案,引入fastjson jar包

  <dependency>
      <groupId>com.alibaba</groupId>
      <artifactId>fastjson</artifactId>
      <version>1.2.22</version>
    </dependency>

添加配置ResultConfig:

package com.message.config;
 
/**
 * @author :zoboy
 * @Description:
 * @ Date: Created in 2019-11-18 10:29
 */
import com.alibaba.fastjson.serializer.SerializerFeature;
import com.alibaba.fastjson.support.config.FastJsonConfig;
import com.alibaba.fastjson.support.spring.FastJsonHttpMessageConverter;
import org.springframework.boot.autoconfigure.http.HttpMessageConverters;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.http.MediaType;
import org.springframework.http.converter.HttpMessageConverter;
 
import java.util.ArrayList;
import java.util.List;
 
@Configuration
public class ResultConfig {
 
  /*注入Bean : HttpMessageConverters,以支持fastjson*/
  @Bean
  public HttpMessageConverters fastJsonHttpMessageConverters() {
    FastJsonHttpMessageConverter fastConvert = new FastJsonHttpMessageConverter();
    FastJsonConfig fastJsonConfig = new FastJsonConfig();
    fastJsonConfig.setSerializerFeatures(SerializerFeature.PrettyFormat,
        SerializerFeature.WriteNullStringAsEmpty,
        SerializerFeature.WriteNullNumberAsZero,
        SerializerFeature.WriteNullListAsEmpty,
        SerializerFeature.WriteMapNullValue,
        SerializerFeature.DisableCheckSpecialChar);
    fastJsonConfig.setDateFormat("yyyy-MM-dd hh:mm:ss");
    //處理中文亂碼問題
    List<MediaType> fastMediaTypes = new ArrayList<>();
    fastMediaTypes.add(MediaType.APPLICATION_JSON_UTF8);
    fastConvert.setSupportedMediaTypes(fastMediaTypes);
    fastConvert.setFastJsonConfig(fastJsonConfig);
    return new HttpMessageConverters((HttpMessageConverter<?>) fastConvert);
  }
}

結(jié)果:

{
 "code": "0",
 "message": "成功!",
 "data": null
}

解決問題!

以上這篇spring boot 下對JSON返回值去除null和空字段操作就是小編分享給大家的全部內(nèi)容了,希望能給大家一個參考,也希望大家多多支持腳本之家。

相關文章

  • Java8對List排序的方法大全

    Java8對List排序的方法大全

    這篇文章主要給大家介紹了關于Java8對List排序的方法大全,其實Java針對數(shù)組和List的排序都有實現(xiàn),文中通過實例代碼介紹的非常詳細,需要的朋友可以參考下
    2023-07-07
  • java為什么不建議用equals判斷對象相等

    java為什么不建議用equals判斷對象相等

    本文主要介紹了java為什么不建議用equals判斷對象相等,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2023-03-03
  • 淺聊一下Java中的鎖機制

    淺聊一下Java中的鎖機制

    Java中的鎖機制是保證多線程并發(fā)訪問共享資源安全性的重要手段之一。Java提供了兩種類型的鎖機制:synchronized關鍵字和Lock接口。本文將介紹這兩種鎖機制的原理及使用方法,并通過代碼示例講解它們的使用
    2023-03-03
  • Java中IO和NIO的區(qū)別詳細解析

    Java中IO和NIO的區(qū)別詳細解析

    這篇文章主要介紹了Java中IO和NIO的區(qū)別詳細解析,IO和NIO有相同的作用和目的,但實現(xiàn)方式不同,NIO主要用到的是塊,所以NIO的效率要比IO快不少,需要的朋友可以參考下
    2023-11-11
  • maven引入第三方jar包配置詳解

    maven引入第三方jar包配置詳解

    這篇文章主要為大家介紹了maven引入第三方jar包配置詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪
    2023-09-09
  • Java中Calendar時間操作常用方法詳解

    Java中Calendar時間操作常用方法詳解

    這篇文章主要為大家詳細介紹了Java中Calendar時間操作常用方法,calendar中set方法和靜態(tài)屬性帶來的一些坑,感興趣的小伙伴們可以參考一下
    2016-05-05
  • IntelliJ IDEA里找不到javax.servlet的jar包的解決方法

    IntelliJ IDEA里找不到javax.servlet的jar包的解決方法

    這篇文章主要介紹了IntelliJ IDEA里找不到javax.servlet的jar包的解決方法,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2020-09-09
  • 解決Idea的選擇文件后定位瞄準器"Select Opened File"的功能不見了

    解決Idea的選擇文件后定位瞄準器"Select Opened File"的功能

    使用IntelliJ IDEA時,可能會發(fā)現(xiàn)"SelectOpenedFile"功能不見了,這個功能允許用戶快速定位到當前打開文件的位置,若要找回此功能,只需在IDEA的標題欄上右鍵,然后選擇"Always Select Opened File",這樣就可以重新啟用這個便捷的功能
    2024-11-11
  • 深入理解Spring Cache框架

    深入理解Spring Cache框架

    今天給大家分析一下 Spring 框架本身對這些緩存具體實現(xiàn)的支持和融合。使用 Spring Cache 將大大的減少我們的Spring項目中緩存使用的復雜度,提高代碼可讀性。本文將從以下幾個方面來認識Spring Cache框架。感興趣的小伙伴們可以參考一下
    2018-11-11
  • Java使用NIO包實現(xiàn)Socket通信的實例代碼

    Java使用NIO包實現(xiàn)Socket通信的實例代碼

    本篇文章主要介紹了Java使用NIO包實現(xiàn)Socket通信的實例代碼,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2017-02-02

最新評論

崇明县| 安化县| 游戏| 巫溪县| 钦州市| 安国市| 衡东县| 城市| 安阳市| 固安县| 宁武县| 桂林市| 岚皋县| 诸城市| 昌都县| 郧西县| 大邑县| 报价| 隆德县| 绵阳市| 阿坝| 定西市| 卢氏县| 修武县| 吉木萨尔县| 江山市| 周宁县| 伊通| 武宣县| 扎赉特旗| 阿城市| 博罗县| 左权县| 金乡县| 石楼县| 兰坪| 木兰县| 宁夏| 广德县| 泽州县| 新建县|