Java笔记-重写JsonSerializer中serialize方法使Json中时间戳/1000
生活随笔
收集整理的這篇文章主要介紹了
Java笔记-重写JsonSerializer中serialize方法使Json中时间戳/1000
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
目錄
?
?
問題演示
解決方法
?
問題演示
出現的為問題如下:
去掉這個createTime和updateTIme中的000,也就是/1000,這里其實有很多方法,可以在構造的時候/1000,但這并不是最好的方法,通過重寫JsonSerializer<T>中的serialize方法,再到想要的成員上加上注解即可:
通過這種方式解決這個問題是比較好的方法
?
解決方法
關鍵代碼如下:
Date2LongSerializer.java
package selldemo.demo.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> {@Overridepublic void serialize(Date date, JsonGenerator jsonGenerator, SerializerProvider serializerProvider) throws IOException, JsonProcessingException {jsonGenerator.writeNumber(date.getTime() / 1000);} }OrderDTO.java
package selldemo.demo.dto;import com.fasterxml.jackson.databind.annotation.JsonSerialize; import lombok.Data; import selldemo.demo.dataobject.OrderDetail; import selldemo.demo.enums.OrderStatusEnum; import selldemo.demo.enums.PayStatusEnum; import selldemo.demo.utils.serializer.Date2LongSerializer;import java.math.BigDecimal; import java.util.Date; import java.util.List;@Data public class OrderDTO {private String orderId;private String buyerName;private String buyerPhone;private String buyerAddress;private String buyerOpenid;private BigDecimal orderAmount;//訂單狀態 默認為下單private Integer orderStatus = OrderStatusEnum.NEW.getCode();//支付狀態 默認為0未支付private Integer payStatus = PayStatusEnum.WAIT.getCode();@JsonSerialize(using = Date2LongSerializer.class)private Date createTime;@JsonSerialize(using = Date2LongSerializer.class)private Date updateTime;List<OrderDetail> orderDetailList; }?
總結
以上是生活随笔為你收集整理的Java笔记-重写JsonSerializer中serialize方法使Json中时间戳/1000的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 反汇编基础-乘法与除法
- 下一篇: Java笔记-JNI各种签名以及例子