Java日期Date类型序列化和反序列化(@JsonFormat、@DateTimeFormat),以及属性跳过序列化(@JsonIgnore、@JsonSerialize)

时间:2025-03-17 17:24:26

序列化和反序列化

序列化:
  1. @JsonFormat:基于fastjson
@JsonFormat(pattern="yyyy-MM-dd HH:mm:ss",timezone = "GMT+8")
private Date sendTime;
  1. @JsonSerialize:基于jackson,@JsonFormat的加强版,支持自定义,需继承JsonSerializer
@JsonSerialize(using = xxxDateJsonSerializer.class)
private Date sendTime;
反序列化:
  1. @DateTimeFormat:基于spring
@DateTimeFormat
private Date sendTime;

序列化和反序列化时的忽略

序列化
  1. 忽略为null的属性:
@JsonSerialize(include= JsonSerialize.Inclusion.NON_NULL) 
private Date sendTime;
  1. 直接忽略属性
@JsonIgnore
private Date sendTime;
反序列化
  1. 忽略未定义的属性:不加时报错
@JsonIgnoreProperties(ignoreUnknown = true)