使用Lombok時(shí)@JsonIgnore注解失效解決方案
問題
Lombok放入@ConstructorProperties所有參數(shù)構(gòu)造函數(shù)。在創(chuàng)建JSON序列化程序期間,字段屬性被構(gòu)造函數(shù)屬性覆蓋。這發(fā)生在POJOPropertiesCollector.collectAll
一個(gè)簡單的解決方案
是將設(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 {
//活動ID
@JsonSerialize(nullsUsing = NullLongSerializer.class)
private Long seminarId;
//活動名稱
@JsonSerialize(nullsUsing = NullStringSerializer.class)
private String seminarTitle ;
//圖片
@JsonSerialize(nullsUsing = NullStringSerializer.class)
private String seminarPreImgAddr;
//主講人名稱
@JsonSerialize(nullsUsing = NullStringSerializer.class)
private String lecturerName;
//主講人小圖
@JsonSerialize(nullsUsing = NullStringSerializer.class)
private String lecturerAvatar;
//標(biāo)簽
@JsonSerialize(nullsUsing = NullStringSerializer.class)
private String tags;
//視頻時(shí)長
@JsonSerialize(nullsUsing = NullStringSerializer.class)
private String mediaTime;
//直播開始時(shí)間
@JsonSerialize(nullsUsing = NullStringSerializer.class)
@JsonFormat(pattern="yyyy-MM-dd HH:mm:ss")
private Date startTime;
//預(yù)告|回顧 /直播
@JsonSerialize(nullsUsing = NullShortSerializer.class)
private Short seminarStatus;
//活動一句話介紹
@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注解失效問題解決的詳細(xì)內(nèi)容,更多關(guān)于Lombok使用@JsonIgnore失效的資料請關(guān)注腳本之家其它相關(guān)文章!
相關(guān)文章
java 遞歸查詢所有子節(jié)點(diǎn)id的方法實(shí)現(xiàn)
在多層次的數(shù)據(jù)結(jié)構(gòu)中,經(jīng)常需要查詢一個(gè)節(jié)點(diǎn)下的所有子節(jié)點(diǎn),本文主要介紹了java 遞歸查詢所有子節(jié)點(diǎn)id的方法實(shí)現(xiàn),具有一定的參考價(jià)值,感興趣的可以了解一下2024-03-03
Java 數(shù)據(jù)結(jié)構(gòu)線性表之順序存儲詳解原理
線性表的順序存儲是指用一組地址連續(xù)的存儲單元依次存儲線性表中的各個(gè)元素、使得線性表中在邏輯結(jié)構(gòu)上相鄰的數(shù)據(jù)元素存儲在相鄰的物理存儲單元中,即通過數(shù)據(jù)元素物理存儲的相鄰關(guān)系來反映數(shù)據(jù)元素之間邏輯上的相鄰關(guān)系2021-10-10
基于SpringBoot與Vue開發(fā)Web版SQL執(zhí)行工具
這篇文章主要為大家詳細(xì)介紹了一個(gè)基于Web的SQL執(zhí)行工具的設(shè)計(jì)與實(shí)現(xiàn),該工具允許用戶通過瀏覽器直接執(zhí)行SQL語句并查看結(jié)果,需要的小伙伴可以了解下2025-08-08
SpringBoot集成screw實(shí)現(xiàn)數(shù)據(jù)庫文檔生成的代碼示例
數(shù)據(jù)庫設(shè)計(jì)文檔是項(xiàng)目技術(shù)文檔的重要組成部分,Screw 是一款開源的數(shù)據(jù)庫文檔生成工具,它支持多種數(shù)據(jù)庫類型,并能生成豐富格式的文檔,本文將通過一個(gè)實(shí)際的例子,展示如何使用 Spring Boot 集成 Screw 生成數(shù)據(jù)庫設(shè)計(jì)文檔2024-07-07

