使用Lombok时@JsonIgnore注解失效解决方案
作者:忘记_3a6a
这篇文章主要为大家介绍了使用Lombok时@JsonIgnore注解失效问题解决,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
问题
Lombok放入@ConstructorProperties所有参数构造函数。在创建JSON序列化程序期间,字段属性被构造函数属性覆盖。这发生在POJOPropertiesCollector.collectAll
一个简单的解决方案
是将设置 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; //标签 @JsonSerialize(nullsUsing = NullStringSerializer.class) private String tags; //视频时长 @JsonSerialize(nullsUsing = NullStringSerializer.class) private String mediaTime; //直播开始时间 @JsonSerialize(nullsUsing = NullStringSerializer.class) @JsonFormat(pattern="yyyy-MM-dd HH:mm:ss") private Date startTime; //预告|回顾 /直播 @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; //结束时间 @JsonIgnore private Date endTime; //直播地址 @JsonIgnore private String liveMediaPlayer240p; //录播地址 @JsonIgnore private String mediaPlayer240p; }
@JsonIgnore
Json不返回该属性
@JsonSerialize(nullsUsing = NullStringSerializer.class)
默认值 取代null
以上就是使用Lombok时@JsonIgnore注解失效问题解决的详细内容,更多关于Lombok使用@JsonIgnore失效的资料请关注脚本之家其它相关文章!