环境
springboot2
需求
在一个返回给前端的实体类中,因为某一新需求增加了两个字段,但是希望以前使用接口返回该实体类时候,不返回这两个字段。
@TableField(exist = false)
private Long postId;
@TableField(exist = false)
private String postName;
因为之前的接口没有赋值给前两个字段,所以不对其两个字段进行处理,都会返回null,可以那这个特性作为切入点。
并且Spring Boot中,默认使用Jackson作为JSON序列化和反序列化的库,所以要在返回给前端的数据中隐藏为null的字段,你可以使用Jackson库提供的注解来控制字段的序列化行为。来隐藏为null的字段
解决步骤
在需要其隐藏为null的字段加入注解JsonInclude
@TableField(exist = false)
@JsonInclude(JsonInclude.Include.NON_NULL)
private Long postId;
@TableField(exist = false)
@JsonInclude(JsonInclude.Include.NON_NULL)
private String postName;
如果是需要整个类的字段都需要这个需求,可以将其JsonInclude注解放在类名上
测试
有数据的时候
没有数据的时候