實(shí)體類或?qū)ο笮蛄谢瘯r,忽略為空屬性的操作
第一種,在配置文件配置
在application.xml直接配置,這種方式是全局配置,所有返回給前端對象的屬性為null或""都不進(jìn)行序列化;
spring:
jackson:
#實(shí)體類轉(zhuǎn)json時字段為null不參與序列化
default-property-inclusion: NON_EMPTY
default-property-inclusion 常用的4種類型
- ALWAYS 默認(rèn)
- NON_DEFAULT 屬性為默認(rèn)值不序列化
- NON_EMPTY 屬性為 “” 或者為NULL都不序列化
- NON_NULL 屬性為NULL時不序列化
第二種,給每個類單獨(dú)設(shè)置
給為空時需要忽略序列化的對象屬性加 @JsonInclude(Include.NON_NULL),也可以直接加到類上,表示一整個對象的屬性為null時都不參與序列化;
@JsonInclude 括號里面可以設(shè)置不同的類型
- Include.Include.ALWAYS 默認(rèn)
- Include.NON_DEFAULT 屬性為默認(rèn)值不序列化
- Include.NON_EMPTY 屬性為 “” 或者為NULL都不序列化
- Include.NON_NULL 屬性為NULL時不序列化
如果配置了全局,又給某個對象進(jìn)行注解方式的設(shè)置,注解方式會覆蓋全局的設(shè)置。
SpringBoot2.x 不反回空值屬性
由于有的時候我們返回的數(shù)據(jù)中存在屬性沒有值得情況,或者是屬性的值為空白字符串,這會浪費(fèi)網(wǎng)絡(luò)流量,又或者是前端框架存在的bug會導(dǎo)致null值或者是空白字符串在渲染的時候會報錯。
處理方式
第一種
全局的方式:在SpringBoot的配置文件中添加以下屬性,即可達(dá)到全局過濾
spring.jackson.default-property-inclusion=non_empty
第二種
局部的方式:在返回的實(shí)體類屬性或者是類名上添加以下注解,即可達(dá)到過濾效果
@JsonInclude(JsonInclude.Include.NON_EMPTY)
注意
這種方式對于空集合也是成立的。屬性一共有如下值可選
- Include.Include.ALWAYS 默認(rèn)
- Include.NON_DEFAULT 屬性為默認(rèn)值不序列化
- Include.NON_EMPTY 屬性為 空(“”) 或者為 NULL 都不序列化
- Include.NON_NULL 屬性為NULL 不序列化
以上為個人經(jīng)驗(yàn),希望能給大家一個參考,也希望大家多多支持腳本之家。
相關(guān)文章
Springboot+MybatisPlus+Oracle實(shí)現(xiàn)主鍵自增的示例代碼
這篇文章主要介紹了Springboot+MybatisPlus+Oracle實(shí)現(xiàn)主鍵自增的示例代碼,本文通過實(shí)例代碼給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下2020-11-11
MyBatis-Plus?條件查詢器的實(shí)現(xiàn)
本文主要介紹了MyBatis-Plus?條件查詢器的實(shí)現(xiàn),文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2022-07-07
SpringBoot應(yīng)用監(jiān)控Actuator使用隱患及解決方案
SpringBoot的Actuator 模塊提供了生產(chǎn)級別的功能,比如健康檢查,審計,指標(biāo)收集,HTTP 跟蹤等,幫助我們監(jiān)控和管理Spring Boot 應(yīng)用,本文將給大家介紹SpringBoot應(yīng)用監(jiān)控Actuator使用隱患及解決方案,需要的朋友可以參考下2024-07-07
Spring boot中@Conditional和spring boot的自動配置實(shí)例詳解
本文通過實(shí)例給大家介紹了Spring boot中@Conditional和spring boot的自動配置,需要的朋友可以參考下2018-05-05

