java去掉返回对象中为NULL的属性

java去掉返回对象中为NULL的属性

@JsonInclude(JsonInclude.Include.NON_NULL)

1.前言

1.和第三方系统进行交互时,如果返回的是对象model转成的json,那么json中会存在 “xxxx”:null
2.使用postMan调试程序时,发现返回对象的属性如果为NULL时,结果很难看。效果如下:
java去掉返回对象中为NULL的属性_第1张图片
2.如何解决这个问题---->在属性上加上注解:@JsonInclude(JsonInclude.Include.NON_NULL)

    @JsonInclude(JsonInclude.Include.NON_NULL)
    private String upSystemId;

2.准备工作

pom依赖:

  <dependency>
     <groupId>com.fasterxml.jackson.core</groupId>
     <artifactId>jackson-core</artifactId>
     <version>2.7.3</version>
  </dependency>
   
  <dependency>
  	 <groupId>com.fasterxml.jackson.core</groupId>
  	 <artifactId>jackson-databind</artifactId>
  	 <version>2.7.3</version>
  </dependency>
  
  <dependency>
     <groupId>com.fasterxml.jackson.core</groupId>
     <artifactId>jackson-annotations</artifactId>
     <version>2.7.3</version>
  </dependency>

3.给对象属性加@JsonInclude

注意:
1:int 属性值的初始值为0,如果不想显示int类型的属性。将int改成Integer。(Integer初始化为null)
2:在查询数据库时,建议将非varchar字段设置默认值null,因为空串 “” != null
来个对象:

package com.example.demo.base.model.baseModel;

import com.fasterxml.jackson.annotation.JsonInclude;
import lombok.Data;

import java.util.Date;

@Data
public class BaseModel {
    /**
     * 上游系统唯一系统标识号 12位系统号
     **/
    @JsonInclude(JsonInclude.Include.NON_NULL)
    private String upSystemId;
    /**
     * 上游系统唯一流水号 21位
     **/
    @JsonInclude(JsonInclude.Include.NON_NULL)
    private String upSystemSeqNo;
    /**
     * 上游系统 请求日期 2020-10-20
     **/
    @JsonInclude(JsonInclude.Include.NON_NULL)
    private Date tranDate;
    /**
     * 上游系统 操作人 12位
     **/
    @JsonInclude(JsonInclude.Include.NON_NULL)
    private String userId;
    /**
     * 主键ID
     **/
    @JsonInclude(JsonInclude.Include.NON_NULL)
    private String id;
    /**
     * 创建时间
     **/
    @JsonInclude(JsonInclude.Include.NON_NULL)
    private Date createTime;
    /**
     * 更新时间
     **/
    @JsonInclude(JsonInclude.Include.NON_NULL)
    private Date updateTime;

    /**
     * 当前页,需要查询的页数
     * pageNo从1开始
     */
    @JsonInclude(JsonInclude.Include.NON_NULL)
    private Integer pageNo;

    /**
     * 每页显示的条数
     */
    @JsonInclude(JsonInclude.Include.NON_NULL)
    private Integer pageSize;

    /**
     * 当前页,需要查询的页数
     * pageNo从1开始
     */
    @JsonInclude(JsonInclude.Include.NON_NULL)
    private Integer startNum;

    /**
     * 设置分页查询数据
     */
    public void setPageQuery() {
        this.startNum = this.getPageNo() > 0 ? (this.getPageNo() - 1) * this.getPageSize() : 0;
    }
}

4.来看下效果

postman结果: 没有为 null 的属性了
java去掉返回对象中为NULL的属性_第2张图片

你可能感兴趣的:(java)