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

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

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

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

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

直接看代碼,很簡(jiǎn)單.

/**
 * 〈返回json空值去掉null和""〉 〈功能詳細(xì)描述〉
 * 
 * @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();
 
    // 通過(guò)該方法對(duì)mapper對(duì)象進(jìn)行設(shè)置,所有序列化的對(duì)象都將按改規(guī)則進(jìn)行系列化
    // Include.Include.ALWAYS 默認(rèn)
    // Include.NON_DEFAULT 屬性為默認(rèn)值不序列化
    // Include.NON_EMPTY 屬性為 空("") 或者為 NULL 都不序列化,則返回的json是沒(méi)有這個(gè)字段的。這樣對(duì)移動(dòng)端會(huì)更省流量
    // 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;
  }
}

補(bǔ)充知識(shí):springboot RestController 配置fastjson,實(shí)體為null時(shí)不顯示問(wèn)題

Springboot 在和fastjson配合使用時(shí),當(dāng)返回實(shí)體為空時(shí)攔截不顯示問(wèn)題。在實(shí)際業(yè)務(wù)中,不管返回實(shí)體是否為空,都需要顯示出來(lái),如果為空則顯示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");
    //處理中文亂碼問(wèn)題
    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
}

解決問(wèn)題!

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

相關(guān)文章

  • Java8對(duì)List排序的方法大全

    Java8對(duì)List排序的方法大全

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

    java為什么不建議用equals判斷對(duì)象相等

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

    淺聊一下Java中的鎖機(jī)制

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

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

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

    maven引入第三方j(luò)ar包配置詳解

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

    Java中Calendar時(shí)間操作常用方法詳解

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

    IntelliJ IDEA里找不到j(luò)avax.servlet的jar包的解決方法

    這篇文章主要介紹了IntelliJ IDEA里找不到j(luò)avax.servlet的jar包的解決方法,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2020-09-09
  • 解決Idea的選擇文件后定位瞄準(zhǔn)器"Select Opened File"的功能不見(jiàn)了

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

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

    深入理解Spring Cache框架

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

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

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

最新評(píng)論

安庆市| 凭祥市| 三江| 睢宁县| 买车| 自治县| 左权县| 泰安市| 九江市| 唐河县| 当涂县| 安义县| 淮北市| 长治县| 明溪县| 长子县| 红河县| 桂林市| 河池市| 漳州市| 汉沽区| 新兴县| 柳江县| 平山县| 共和县| 灵宝市| 高雄县| 乌恰县| 永善县| 庄河市| 卫辉市| 高陵县| 平阴县| 大新县| 临洮县| 故城县| 金塔县| 罗定市| 铜梁县| 潞西市| 汤原县|