使用jackSon序列化时,默认情况下,如果字段status为null,则序列化结果就为:
{
...,
"status": null,
...
}
那如果有好几个字段都是null,那序列化的结果就会有很多这样的null,这样就不太好了,而使用@JsonInclude注解就可以解决这个问题。下面详细说明。
普通Java类(pojo):
@JsonInclude(JsonInclude.Include.NON_NULL)
public class OrderDTO {
private String orderId;
@JsonProperty("name")
private String buyerName;
@JsonProperty("phone")
private String buyerPhone;
@JsonProperty("address")
private String buyerAddress;
@JsonProperty("openid")
private String buyerOpenid;
private BigDecimal orderAmount;
/**
* 订单状态,默认是0
*/
private Integer orderStatus;
/**
* 支付状态
*/
private Integer payStatus;
@JsonSerialize(using = Date2LongSerializer.class)
private Timestamp createTime;
@JsonSerialize(using = Date2LongSerializer.class)
private Timestamp updateTime;
@JsonProperty("items")
List<OrderDetailEntity> orderDetailList;
}
@JsonInclude(JsonInclude.Include.NON_NULL)表示,如果值为null,则不返回。
全局jsckson配置:
spring:
datasource:
driver-class-name: com.mysql.jdbc.Driver
username: root
password: 123456
url: jdbc:mysql://localhost/sell?characterEncoding=utf-8&useSSL=false
jackson:
default-pr