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
3. 代码示例演示:
package com.zpjeck.dto;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.fasterxml.jackson.annotation.JsonInclude;
import com.fasterxml.jackson.databind.annotation.JsonSerialize;
import com.zpjeck.entity.OrderDetail;
import com.zpjeck.util.serialize.Data2LongSerialize;
import lombok.Data;
import lombok.Value;
import java.math.BigDecimal;
import java.util.Date;
import java.util.List;
@Data
@JsonInclude(JsonInclude.Include.NON_NULL)
public class OrderDTO {
/** 订单id. */
private String orderId;
/** 买家名字. */
private String buyerName;
/** 买家手机号. */
private String buyerPhone;
/** 买家地址. */
private String buyerAddress;
/** 买家微信Openid. */
private String buyerOpenid;
/** 订单总金额. */
private BigDecimal orderAmount;
/** 订单状态, 默认为0新下单. */
private Integer orderStatus ;
/** 支付状态, 默认为0未支付. */
private Integer payStatus;
/** 创建时间. */
@JsonFormat(pattern = "yyyy-MM-dd")
private Date createTime;
/** 更新时间. */
//更换成时间戳 精进版
@JsonSerialize(using = Data2LongSerialize.class)
private Date updateTime;
List<OrderDetail> orderDetailList;
}
演示结果