我有一个字段 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模块包含到项目中并使用@JsonDeserialize
与LocalDateTimeDeserializer
解决了该问题。
@JsonSerialize(using = ToStringSerializer.class)
@JsonDeserialize(using = LocalDateTimeDeserializer.class)
private LocalDateTime initiationDate;
parse
,但是你是否已经添加了适当的扩展,在这里? - Sotirios DelimanolisLocalDateTime.parse("2016-05-11T17:32:20.897")
可以正常工作。 - Andrew Tobilko