使用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失效的资料请关注脚本之家其它相关文章!
相关文章
使用Spring处理x-www-form-urlencoded方式
这篇文章主要介绍了使用Spring处理x-www-form-urlencoded方式,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教2021-11-11
java自带命令行工具jmap、jhat与jinfo的使用实例代码详解
本篇文章主要通过代码实例对java自带命令行工具jmap、jhat与jinfo的使用做出了详解,需要的朋友可以参考下2017-04-04
springboot调用webservice-soap接口的实现
接口协议目前广泛使用的有http协议和RPC协议和webservice,本文主要介绍了springboot调用webservice-soap接口的实现,具有一定的参考价值,感兴趣的可以了解一下2024-03-03


最新评论