Springboot 默认情况下使用Jackson 作为序列化和反序列化的工具,可以通过@JsonFormat
来定义序列化和反序列化的方式。
反序列化/反序列化 Date对象
如果没有为Jackson指定反序列时间的方法,那么从前端传入的时间字符串,会因为无法解析而抛出异常JSON parse error
。
对于前端或者其他业务系统来说返回实体时候,对时间类型的对象jackson使用的默认反序列化格式是UTC的时间格式:yyyy-MM-ddThh:mm:ss
,有时候我们需要定制返还的时间格式。
上面描述的几个场景都可以使用@JsonFormat(shape = ..., pattern = "...")
指定时间反序列化的方式,和序列化的方式
如:
@JsonFormat(shape = JsonFormat.Shape.STRING, pattern = "yyyy-MM-dd HH:mm:ss")
private LocalDateTime registDateTime;
这里使用
LocalDateTime
代替了Date
,LocalDateTime
自身提供很多的方法,远远比Date
对象使用要方便的多,如时间比较,时间的加减运算等等…
在请求和响应时候对该字段registDateTime
,的序列化和反序列都会采用yyyy-MM-dd HH:mm:ss
的格式。