@JsonSerialize(using = Date2LongSerializer.class)注解使用案例

1,实体类,在实体类中在要转换的字段上加上该注解@JsonSerialize(using = Date2LongSerializer.class)

package com.san.dto;

import com.fasterxml.jackson.annotation.JsonIgnore;
import com.fasterxml.jackson.databind.annotation.JsonSerialize;
import com.san.dataobject.OrderDetail;
import com.san.enums.OrderStatusEnum;
import com.san.enums.PayStatusEnum;
import com.san.utils.EnumUtil;
import com.san.utils.serializer.Date2LongSerializer;
import lombok.Data;

import java.math.BigDecimal;
import java.util.Date;
import java.util.List;

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;

    /** 创建时间. */
    @JsonSerialize(using = Date2LongSerializer.class)
    private Date createTime;

    /** 更新时间. */
    @JsonSerialize(using = Date2LongSerializer.class)
    private Date updateTime;

    List<OrderDetail> orderDetailList;

    
    
    public String getOrderId() {
      return orderId;
   }

   public void setOrderId(String orderId) {
      this.orderId = orderId;
   }

   public String getBuyerName() {
      return buyerName;
   }

   public void setBuyerName(String buyerName) {
      this.buyerName = buyerName;
   }

   public String getBuyerPhone() {
      return buyerPhone;
   }

   public void setBuyerPhone(String buyerPhone) {
      this.buyerPhone = buyerPhone;
   }

   public String getBuyerAddress() {
      return buyerAddress;
   }

   public void setBuyerAddress(String buyerAddress) {
      this.buyerAddress = buyerAddress;
   }

   public String getBuyerOpenid() {
      return buyerOpenid;
   }

   public void setBuyerOpenid(String buyerOpenid) {
      this.buyerOpenid = buyerOpenid;
   }

   public BigDecimal getOrderAmount() {
      return orderAmount;
   }

   public void setOrderAmount(BigDecimal orderAmount) {
      this.orderAmount = orderAmount;
   }

   public Integer getOrderStatus() {
      return orderStatus;
   }

   public void setOrderStatus(Integer orderStatus) {
      this.orderStatus = orderStatus;
   }

   public Integer getPayStatus() {
      return payStatus;
   }

   public void setPayStatus(Integer payStatus) {
      this.payStatus = payStatus;
   }

   public Date getCreateTime() {
      return createTime;
   }

   public void setCreateTime(Date createTime) {
      this.createTime = createTime;
   }

   public Date getUpdateTime() {
      return updateTime;
   }

   public void setUpdateTime(Date updateTime) {
      this.updateTime = updateTime;
   }

   public List<OrderDetail> getOrderDetailList() {
      return orderDetailList;
   }

   public void setOrderDetailList(List<OrderDetail> orderDetailList) {
      this.orderDetailList = orderDetailList;
   }

   @JsonIgnore
    public OrderStatusEnum getOrderStatusEnum() {
        return EnumUtil.getByCode(orderStatus, OrderStatusEnum.class);
    }

    @JsonIgnore
    public PayStatusEnum getPayStatusEnum() {
        return EnumUtil.getByCode(payStatus, PayStatusEnum.class);
    }
}


,2,负责转换的类

package com.san.utils.serializer;

import com.fasterxml.jackson.core.JsonGenerator;
import com.fasterxml.jackson.core.JsonProcessingException;
import com.fasterxml.jackson.databind.JsonSerializer;
import com.fasterxml.jackson.databind.SerializerProvider;

import java.io.IOException;
import java.util.Date;


public class Date2LongSerializer extends JsonSerializer<Date> {

    @Override
    public void serialize(Date date, JsonGenerator jsonGenerator, SerializerProvider serializerProvider) throws IOException, JsonProcessingException {
        jsonGenerator.writeNumber(date.getTime() / 1000);
    }
}

数据存储在数据库中的格式:

 

转换后的效果(返回给前端的json格式):

 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值