小编J.P*_*.P.的帖子

Java Spring:Jackson 反序列化到 ZonedDateTime

假设我想使用以下类从外部 JSON 有效负载进行反序列化:

public class MyObject {

    @JsonFormat(shape = JsonFormat.Shape.STRING, pattern = "yyyy-MM-dd'T'HH:mm:ss.SSSZ"
    private ZonedDateTime timestamp;

}
Run Code Online (Sandbox Code Playgroud)

当我尝试使用 JSON 负载时,Jackson 抛出以下错误:

Cannot deserialize value of type `java.time.ZonedDateTime` from String "2019-01-23T12:54:18.610Z": Failed to deserialize java.time.ZonedDateTime: (java.time.format.DateTimeParseException) Text '2019-01-23T12:54:18.610Z' could not be parsed at index 23
Run Code Online (Sandbox Code Playgroud)

如您所见,传入的字符串是"2019-01-23T12:54:18.610Z",据我所知,这是一个有效的 ZonedDateTime。使用 jshell,将该字符串解析为 ZonedDateTime 使用ZonedDateTime.parse("2019-01-23T12:54:18.610Z")结果在一个有效的 ZonedDateTime 中,正如我所期望的那样。

  • 为什么杰克逊在这里失败了?
  • 我该怎么做才能让它发挥作用?

我也不是 Spring 或 Jackson 的专家。谢谢。

编辑:我使用的是 Spring Boot v2.1.1.RELEASE。

java spring parsing jackson zoneddatetime

1
推荐指数
1
解决办法
3166
查看次数

标签 统计

jackson ×1

java ×1

parsing ×1

spring ×1

zoneddatetime ×1