@JsonInclude @JsonFormat @JsonIgnore 注解

@JsonInclude背景:
1.使用@JsonInclude(JsonInclude.Include.NON_NULL)注解

可以返回制定格式的json数据 : 如果属性返回值为空,则不返回任何内容,这是由于

@JsonInclude(JsonInclude.Include.NON_NULL)这个注解产生的

本注解是从废弃的注解中提升的

@JsonSerialize(include = JsonSerialize.Inclusion.NON_NULL)

2.当然在springboot中也可以使用配置文件的方式进行过滤属性的空值,代码如下:

此在配置文件就如同注解一般, 起到异曲同工之妙

spring:`` jackson: default-property-inclusion: non_null

hello wolrd

`spring:`` 
    `jackson:`
        default-property-inclusion: non_null`

@JsonFormat背景:
@JsonFormat注解是一个时间格式化注解,比如我们存储在mysql中的数据是date类型的,当我们读取出来封装在实体类中的时候,就会变成英文时间格式,而不是yyyy-MM-dd HH:mm:ss这样的中文时间,因此我们需要用到JsonFormat注解来格式化我们的时间。
  简而言之,将数据库中的data类型的时间格式化为yyyy-MM-dd HH:mm:ss

注意:@JsonFormat 在这里没有用 导出来的excel依然带有时分秒

private Date predictedUnavailableDate;
private Date proLaunchDate;

@JsonIgnore背景:

需要把一个List转换成json格式的数据传递给前台。但实体类中基本属性字段的值都存储在快照属性字段中。此时我可以在业务层中做处理,把快照属性字段的值赋给实体类中对应的基本属性字段。最后,我希望返回的json数据中不包含这两个快照字段,那么在实体类中快照属性上加注解@JsonIgnore,那么最后返回的json数据,将不会包含goodsInfo和extendsInfo两个属性值

public class HistoryOrderBean {

//基本属性字段
private String insurantName;
private String insuranceName;
private String insurancePrice;
private String insurancePicture;
private String insuranceLimit;
 
//快照属性字段
@JsonIgnore
private String goodsInfo;      //快照基本信息
@JsonIgnore  
private String extendsInfo;    //快照扩展属性信息

}

posted @   码农公子的幸福生活  阅读(318)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 无需6万激活码!GitHub神秘组织3小时极速复刻Manus,手把手教你使用OpenManus搭建本
· C#/.NET/.NET Core优秀项目和框架2025年2月简报
· Manus爆火,是硬核还是营销?
· 终于写完轮子一部分:tcp代理 了,记录一下
· 【杭电多校比赛记录】2025“钉耙编程”中国大学生算法设计春季联赛(1)
点击右上角即可分享
微信分享提示