@JsonInclude注解

版权声明:未经允许,不得转载 https://blog.csdn.net/ZPJeck/article/details/84784186

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;
}

演示结果

 

猜你喜欢

转载自blog.csdn.net/ZPJeck/article/details/84784186