java

关注公众号 jb51net

关闭
首页 > 软件编程 > java > Lombok使用@JsonIgnore失效

使用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失效的资料请关注脚本之家其它相关文章!

您可能感兴趣的文章:
阅读全文