【发布时间】:2016-09-07 01:35:15
【问题描述】:
我有 initiationDate 字段,它按 ToStringSerializer 类序列化为 ISO-8601 格式。
@JsonSerialize(using = ToStringSerializer.class)
private LocalDateTime initiationDate;
当我收到以下 JSON 时,
...
"initiationDate": "2016-05-11T17:32:20.897",
...
我想通过LocalDateTime.parse(CharSequence text)工厂方法反序列化它。我所有的尝试都以com.fasterxml.jackson.databind.JsonMappingException结束:
无法从
String值('2016-05-11T17:32:20.897')实例化类型[简单类型,类java.time.LocalDateTime]的值;没有单String构造函数/工厂方法
我如何做到这一点?如何指定工厂方法?
编辑:
问题已通过将jackson-datatype-jsr310 module 包含到项目中并将@JsonDeserialize 与LocalDateTimeDeserializer 一起使用来解决。
@JsonSerialize(using = ToStringSerializer.class)
@JsonDeserialize(using = LocalDateTimeDeserializer.class)
private LocalDateTime initiationDate;
【问题讨论】:
-
我不知道它使用
parse,但是你添加了适当的扩展,here? -
@SotiriosDelimanolis,不,它如何解决我的问题?我需要指定工厂方法。
LocalDateTime.parse("2016-05-11T17:32:20.897")工作正常。
标签: java json datetime jackson deserialization