實(shí)體類(lèi)或?qū)ο笮蛄谢瘯r(shí),忽略為空屬性的操作
第一種,在配置文件配置
在application.xml直接配置,這種方式是全局配置,所有返回給前端對(duì)象的屬性為null或""都不進(jìn)行序列化;
spring: jackson: #實(shí)體類(lèi)轉(zhuǎn)json時(shí)字段為null不參與序列化 default-property-inclusion: NON_EMPTY
default-property-inclusion 常用的4種類(lèi)型
- ALWAYS 默認(rèn)
- NON_DEFAULT 屬性為默認(rèn)值不序列化
- NON_EMPTY 屬性為 “” 或者為NULL都不序列化
- NON_NULL 屬性為NULL時(shí)不序列化
第二種,給每個(gè)類(lèi)單獨(dú)設(shè)置
給為空時(shí)需要忽略序列化的對(duì)象屬性加 @JsonInclude(Include.NON_NULL),也可以直接加到類(lèi)上,表示一整個(gè)對(duì)象的屬性為null時(shí)都不參與序列化;
@JsonInclude 括號(hào)里面可以設(shè)置不同的類(lèi)型
- Include.Include.ALWAYS 默認(rèn)
- Include.NON_DEFAULT 屬性為默認(rèn)值不序列化
- Include.NON_EMPTY 屬性為 “” 或者為NULL都不序列化
- Include.NON_NULL 屬性為NULL時(shí)不序列化
如果配置了全局,又給某個(gè)對(duì)象進(jìn)行注解方式的設(shè)置,注解方式會(huì)覆蓋全局的設(shè)置。
SpringBoot2.x 不反回空值屬性
由于有的時(shí)候我們返回的數(shù)據(jù)中存在屬性沒(méi)有值得情況,或者是屬性的值為空白字符串,這會(huì)浪費(fèi)網(wǎng)絡(luò)流量,又或者是前端框架存在的bug會(huì)導(dǎo)致null值或者是空白字符串在渲染的時(shí)候會(huì)報(bào)錯(cuò)。
處理方式
第一種
全局的方式:在SpringBoot的配置文件中添加以下屬性,即可達(dá)到全局過(guò)濾
spring.jackson.default-property-inclusion=non_empty
第二種
局部的方式:在返回的實(shí)體類(lèi)屬性或者是類(lèi)名上添加以下注解,即可達(dá)到過(guò)濾效果
@JsonInclude(JsonInclude.Include.NON_EMPTY)
注意
這種方式對(duì)于空集合也是成立的。屬性一共有如下值可選
- Include.Include.ALWAYS 默認(rèn)
- Include.NON_DEFAULT 屬性為默認(rèn)值不序列化
- Include.NON_EMPTY 屬性為 空(“”) 或者為 NULL 都不序列化
- Include.NON_NULL 屬性為NULL 不序列化
以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。
相關(guān)文章
Java實(shí)現(xiàn)獲取指定個(gè)數(shù)的不同隨機(jī)數(shù)
今天小編就為大家分享一篇關(guān)于Java實(shí)現(xiàn)獲取指定個(gè)數(shù)的不同隨機(jī)數(shù),小編覺(jué)得內(nèi)容挺不錯(cuò)的,現(xiàn)在分享給大家,具有很好的參考價(jià)值,需要的朋友一起跟隨小編來(lái)看看吧2019-01-01Java使用EasyExcel進(jìn)行單元格合并的問(wèn)題詳解
項(xiàng)目中需要導(dǎo)出并合并指定的單元格,下面這篇文章主要給大家介紹了關(guān)于java評(píng)論、回復(fù)功能設(shè)計(jì)與實(shí)現(xiàn)的相關(guān)資料,文中通過(guò)實(shí)例代碼介紹的非常詳細(xì),需要的朋友可以參考下2022-06-06Java實(shí)現(xiàn)泡泡堂對(duì)戰(zhàn)版游戲的示例代碼
本文將利用Java制作經(jīng)典游戲《泡泡堂》,文中使用了MVC模式,分離了模型、視圖和控制器,使得項(xiàng)目結(jié)構(gòu)清晰易于擴(kuò)展,感興趣的可以了解一下2022-04-04Mybatis-plus+通用mapper(tk.mybatis)的使用
本文主要介紹了Mybatis-plus+通用mapper(tk.mybatis)的使用,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧<BR>2024-03-03java利用Socket實(shí)現(xiàn)聊天室功能實(shí)例
這篇文章主要介紹了java利用Socket實(shí)現(xiàn)聊天室功能實(shí)例,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下。2017-02-02Java多線程編程之訪問(wèn)共享對(duì)象和數(shù)據(jù)的方法
這篇文章主要介紹了Java多線程編程之訪問(wèn)共享對(duì)象和數(shù)據(jù)的方法,多個(gè)線程訪問(wèn)共享對(duì)象和數(shù)據(jù)的方式有兩種情況,本文分別給出代碼實(shí)例,需要的朋友可以參考下2015-05-05