练习:将从表读出来的时间戳除以1000(java读时间戳会多出3个000)用jackson包 实现...

练习:将从表读出来的时间戳除以1000(java读时间戳会多出3个000)jackson包 实现

entity

@Entity
@DynamicUpdate  //自动更新日期
@Data //get/set
public class OrderDetail {


    @Id
    private String detailId;

    /**订单id**/
    private String orderId;

    /**商品id**/
    private String productId;

    /**商品名**/
    private String productName;

    /**商品价格**/
    private BigDecimal productPrice;

    /**购票数量**/
    private Integer productQuantity;

    /**商品图片**/
    private String productIcon;

    /**时间戳**/
    private Date createTimestamp;

    /**时间戳**/
    private Date updateTimestamp;
}

  

java读出的数据格式,时间戳会精确到毫秒,多出3个000

{
  "statusCode": 0,
  "message": "返回成功",
  "data": [{
    "orderId": "1542785381425923730",
    "buyerName": "王五",
    "buyerPhone": "15605852476",
    "buyerAddr": "北京王府井",
    "buyerOpenid": "110112",
    "buyerAmount": 4.40,
    "orderStatus": 0,
    "payStatus": 0,
    "createTimestamp": 1542794276000,
    "updateTimestamp": 1542794276000,
    "orderDetailList": null
  }]
}

  

解决方法:

1.继承com.fasterxml.jackson.databind.JsonSerializer;的类,并复写:serialize(T.....)方法

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

  

2.在实体类上用上新建的 DateToTimestamp 类的注解

@Entity
@DynamicUpdate //自动更新日期
@Data //get/set
public class OrderMaster {

    @Id
    private String orderId;

    /**买家名字**/
    private String buyerName;

    /**买家手机**/
    private String buyerPhone;

    /**买家地址**/
    private String buyerAddr;

    /**用户openid**/
    private String buyerOpenid;

    /**订单金额**/
    private BigDecimal buyerAmount;

    /**订单状态, 默认状态0新订单**/
    private Integer orderStatus = OrderStatusEnum.NEW.getCode();

    /**支付状态, 默认状态0等待支付**/
    private Integer payStatus = PayStatusEnum.WAIT.getCode();

    /**
     * 此注解表示时间戳除以1000
     */
    @JsonSerialize(using = DateToTimestamp.class)
    private Date createTimestamp;

    /**
     * 此注解表示时间戳除以1000
     */
   @JsonSerialize(using = DateToTimestamp.class)
    private Date updateTimestamp;

}

  

 

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值