使用Lombok時(shí)@JsonIgnore注解失效解決方案
問(wèn)題
Lombok放入@ConstructorProperties所有參數(shù)構(gòu)造函數(shù)。在創(chuàng)建JSON序列化程序期間,字段屬性被構(gòu)造函數(shù)屬性覆蓋。這發(fā)生在POJOPropertiesCollector.collectAll
一個(gè)簡(jiǎn)單的解決方案
是將設(shè)置 suppressConstructorProperties為true中@AllArgsConstructor。
package ren.moore.api.app.common.controller.tools.response.seminar; import com.fasterxml.jackson.annotation.JsonFormat; import com.fasterxml.jackson.annotation.JsonIgnore; import com.fasterxml.jackson.databind.annotation.JsonSerialize; import lombok.AllArgsConstructor; import lombok.Data; import lombok.NoArgsConstructor; import ren.moore.api.config.jackson.NullLongSerializer; import ren.moore.api.config.jackson.NullShortSerializer; import ren.moore.api.config.jackson.NullStringSerializer; import java.util.Date; /** * APP視頻列表 */ @Data @NoArgsConstructor @AllArgsConstructor(suppressConstructorProperties =true) public class AppHotSeminarVo { //活動(dòng)ID @JsonSerialize(nullsUsing = NullLongSerializer.class) private Long seminarId; //活動(dòng)名稱(chēng) @JsonSerialize(nullsUsing = NullStringSerializer.class) private String seminarTitle ; //圖片 @JsonSerialize(nullsUsing = NullStringSerializer.class) private String seminarPreImgAddr; //主講人名稱(chēng) @JsonSerialize(nullsUsing = NullStringSerializer.class) private String lecturerName; //主講人小圖 @JsonSerialize(nullsUsing = NullStringSerializer.class) private String lecturerAvatar; //標(biāo)簽 @JsonSerialize(nullsUsing = NullStringSerializer.class) private String tags; //視頻時(shí)長(zhǎng) @JsonSerialize(nullsUsing = NullStringSerializer.class) private String mediaTime; //直播開(kāi)始時(shí)間 @JsonSerialize(nullsUsing = NullStringSerializer.class) @JsonFormat(pattern="yyyy-MM-dd HH:mm:ss") private Date startTime; //預(yù)告|回顧 /直播 @JsonSerialize(nullsUsing = NullShortSerializer.class) private Short seminarStatus; //活動(dòng)一句話介紹 @JsonSerialize(nullsUsing = NullStringSerializer.class) private String signature; //播放地址 @JsonSerialize(nullsUsing = NullStringSerializer.class) private String mediaPlayer; //是否直播 @JsonIgnore private Short liveStatus; //結(jié)束時(shí)間 @JsonIgnore private Date endTime; //直播地址 @JsonIgnore private String liveMediaPlayer240p; //錄播地址 @JsonIgnore private String mediaPlayer240p; }
@JsonIgnore
Json不返回該屬性
@JsonSerialize(nullsUsing = NullStringSerializer.class)
默認(rèn)值 取代null
以上就是使用Lombok時(shí)@JsonIgnore注解失效問(wèn)題解決的詳細(xì)內(nèi)容,更多關(guān)于Lombok使用@JsonIgnore失效的資料請(qǐng)關(guān)注腳本之家其它相關(guān)文章!
相關(guān)文章
SpringCloud注冊(cè)中心部署Eureka流程詳解
Eureka是Netflix開(kāi)發(fā)的服務(wù)發(fā)現(xiàn)框架,本身是一個(gè)基于REST的服務(wù),主要用于定位運(yùn)行在AWS域中的中間層服務(wù),以達(dá)到負(fù)載均衡和中間層服務(wù)故障轉(zhuǎn)移的目的2022-11-11使用Spring處理x-www-form-urlencoded方式
這篇文章主要介紹了使用Spring處理x-www-form-urlencoded方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2021-11-11Spring Security自定義登錄原理及實(shí)現(xiàn)詳解
這篇文章主要介紹了Spring Security自定義登錄原理及實(shí)現(xiàn)詳解,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2020-09-09java自帶命令行工具jmap、jhat與jinfo的使用實(shí)例代碼詳解
本篇文章主要通過(guò)代碼實(shí)例對(duì)java自帶命令行工具jmap、jhat與jinfo的使用做出了詳解,需要的朋友可以參考下2017-04-04springboot調(diào)用webservice-soap接口的實(shí)現(xiàn)
接口協(xié)議目前廣泛使用的有http協(xié)議和RPC協(xié)議和webservice,本文主要介紹了springboot調(diào)用webservice-soap接口的實(shí)現(xiàn),具有一定的參考價(jià)值,感興趣的可以了解一下2024-03-03Java?MyBatis是如何執(zhí)行一條SQL語(yǔ)句的
這篇文章主要介紹了Java?MyBatis是如何執(zhí)行一條SQL語(yǔ)句的,文章圍繞主題展開(kāi)詳細(xì)的內(nèi)容介紹,具有一定的參考價(jià)值,需要的小伙伴可以參考一下2022-07-07