JsonDeserialize不适用于LocalDateTime

问题描述

我想将客户端的POST请求发送到后端,在POJO中,我有两个字段LocalDate和LocalDateTime,如下所示:

@JsonDeserialize(using = LocalDateTimeDeserializer.class)
@JsonFormat(shape = JsonFormat.Shape.STRING,pattern = "dd.MM.yyyy - hh:mm:ss")
private LocalDateTime createdTimestamp;

@JsonDeserialize(using = LocalDateDeserializer.class)
@JsonFormat(shape = JsonFormat.Shape.STRING,pattern = "dd.MM.yyyy")
private LocalDate expiredDate; 

客户端将发送带有以下内容的请求:

{
    "expiredDate" : "01.01.2020","createdTimestamp" : "01.02.2020 - 10:10:10"  
}

但是,在后端,我有一个例外:

java.lang.NoSuchMethodError:
com.fasterxml.jackson.databind.DeserializationContext.handleWeirdStringValue(Ljava/lang/Class;Ljava/lang/String;Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/Object;

如果我将createdTimestamp放在请求的正文之外,那么它就起作用了。似乎只有注释@JsonDeserialize(using = LocalDateDeserializer.class)有效,而@JsonDeserialize(using = LocalDateTimeDeserializer.class)无效。

有人知道为什么会这样吗?

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)