使用Lombok时@JsonIgnore注解失效解决方案

 更新时间:2023年06月12日 09:29:39   作者:忘记_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失效的资料请关注脚本之家其它相关文章!

相关文章

  • Java编程中避免equals方法的隐藏陷阱介绍

    Java编程中避免equals方法的隐藏陷阱介绍

    这篇文章主要介绍了Java编程中避免equals方法的隐藏陷阱介绍,具有一定参考价值,需要的朋友可以了解下。
    2017-11-11
  • Spring Bean的线程安全问题

    Spring Bean的线程安全问题

    Spring容器中的Bean是否线程安全,本文主要介绍了Spring Bean的线程安全问题,文中通过示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2022-06-06
  • SpringBoot后端解决跨域问题的3种方案分享

    SpringBoot后端解决跨域问题的3种方案分享

    这篇文章主要给大家分享介绍了关于SpringBoot后端解决跨域问题的3种方案,跨域指的是浏览器不能执行其他网站的脚本,它是由浏览器的同源策略造成的,是浏览器施加的安全限制,需要的朋友可以参考下
    2023-07-07
  • spring boot 配置Filter过滤器的方法

    spring boot 配置Filter过滤器的方法

    本篇文章主要介绍了spring boot 配置Filter过滤器的方法,实例分析了spring boot 配置Filter过滤器的技巧,有兴趣的可以了解一下。
    2017-03-03
  • Java 中如何创建按钮单击事件

    Java 中如何创建按钮单击事件

    我们使用事件侦听器在Java中创建按钮单击事件,本文给大家讲解Java中的按钮单击事件,结合示例代码给大家介绍的非常详细,需要的朋友可以参考下
    2023-05-05
  • java 递归查询所有子节点id的方法实现

    java 递归查询所有子节点id的方法实现

    在多层次的数据结构中,经常需要查询一个节点下的所有子节点,本文主要介绍了java 递归查询所有子节点id的方法实现,具有一定的参考价值,感兴趣的可以了解一下
    2024-03-03
  • 浅谈java日志格式化

    浅谈java日志格式化

    不管我们使用何种语言开发,一旦程序发生异常,日志是一个很重要的数据。但是并不是意味着打印的日志越多越好,我们需要的是有用的日志。下面小编来和大家一起学习以下知识
    2019-05-05
  • Java 数据结构线性表之顺序存储详解原理

    Java 数据结构线性表之顺序存储详解原理

    线性表的顺序存储是指用一组地址连续的存储单元依次存储线性表中的各个元素、使得线性表中在逻辑结构上相邻的数据元素存储在相邻的物理存储单元中,即通过数据元素物理存储的相邻关系来反映数据元素之间逻辑上的相邻关系
    2021-10-10
  • 基于SpringBoot与Vue开发Web版SQL执行工具

    基于SpringBoot与Vue开发Web版SQL执行工具

    这篇文章主要为大家详细介绍了一个基于Web的SQL执行工具的设计与实现,该工具允许用户通过浏览器直接执行SQL语句并查看结果,需要的小伙伴可以了解下
    2025-08-08
  • SpringBoot集成screw实现数据库文档生成的代码示例

    SpringBoot集成screw实现数据库文档生成的代码示例

    数据库设计文档是项目技术文档的重要组成部分,Screw 是一款开源的数据库文档生成工具,它支持多种数据库类型,并能生成丰富格式的文档,本文将通过一个实际的例子,展示如何使用 Spring Boot 集成 Screw 生成数据库设计文档
    2024-07-07

最新评论