关于使用@JsonInclude(JsonInclude.Include.NON_NULL)标签去除json数据中的空值问题

@JsonInclude(JsonInclude.Include.NON_NULL)标记是jackson包提供的json序列化方法,已经集成于Springboot2.0中,此方法的配置意在可以对实体json序列化的时候进行对应的数值处理,

//将该标记放在属性上,如果该属性为NULL则不参与序列化 
//如果放在类上边,那对这个类的全部属性起作用 
//Include.Include.ALWAYS 默认 
//Include.NON_DEFAULT 属性为默认值不序列化 
//Include.NON_EMPTY 属性为 空(“”) 或者为 NULL 都不序列化 
//Include.NON_NULL 属性为NULL 不序列化 

此注解适用于类标头,可以对实体类引用会自动按规则过滤实体类生成的json数据,也可以通过实现Serializable接口来标识此注解,用于对类的最终json结构进行过滤处理。如下:

@Data
@JsonInclude(JsonInclude.Include.NON_NULL)
public class Response<T> implements Serializable {

    //请求成功返回码为:0000
    private static final String suucessCode = "0000";
    //返回数据
    private T data;
    //返回码
    private String code;
    //返回描述
    private String msg;

    public Response(){
        this.code = suucessCode;
        this.msg = "请求成功";
    }

    public Response(String code,String msg){
        this();
        this.code = code;
        this.msg = msg;
        this.data = data;
    }

    public Response(T data){
        this();
        this.data = data;
    }

}

以及对Pojo类的引用:

@Data
@JsonInclude(JsonInclude.Include.NON_NULL)
public class User_table {
    private Integer User_Id;
    private String UserName;
    private String Password;
    private Integer Administrator_Id;
    private Integer Role_Id;
}

此处的加注解之前的浏览结果为

加上注解之后的结果为

除了注解式配置以外SpringBoot还提供了Application.yml配置方法

spring: 
    jackson:
        default-property-inclusion: non_null

此时的返回值结果与上图一样,

注:application.yml这个地方的配置是全局配置可能会影响到其他的某些服务接口,所以谨慎配置。

  • 16
    点赞
  • 64
    收藏
    觉得还不错? 一键收藏
  • 5
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值