当前位置: 首页 > 知识库问答 >
问题:

Jackson模块从Spring Boot 2.4. x更新到2.5. x后未注册

彭炳
2023-03-14

从2.4.8更新到2.5.4后,我开始在jackson序列化时出现此错误,当尝试反序列化LocalDate时:

com.fasterxml.jackson.databind.exc.InvalidDefinitionException: Java 8 date/time type `java.time.LocalDate` not supported by default: add Module "com.fasterxml.jackson.datatype:jackson-datatype-jsr310" to enable handling

据我所知,这不应该发生(在以前的版本上也不会发生),因为Spring Boot默认具有这些Jackson依赖项(jackson-datatype-jdk8、jackson-datatype-jsr310等)

我没有自定义的Jackson配置<2.5.x版本的Spring boot有什么变化吗?

共有2个答案

艾望
2023-03-14

这是Spring Boot 2.5.0和InvalidDefinitionException的副本:Java 8日期/时间类型“Java.time”。默认情况下不支持Instant

我认为我没有足够的声誉来标记它。

姜胤
2023-03-14

出现这个问题是因为JSON本身没有日期格式,所以它将日期表示为字符串。

日期的字符串表示形式与内存中LocalDate类型的对象不同,因此我们需要一个外部反序列化器从字符串中读取该字段,并需要一个序列化器将日期呈现为字符串格式。

具有以下依赖关系:-

<dependency>
    <groupId>com.fasterxml.jackson.datatype</groupId>
    <artifactId>jackson-datatype-jsr310</artifactId>
    <version>2.11.0</version>
</dependency>

在实体级别使用LocalDateDeserializer和JsonFormat注释。

public class EntityWithDate{

    @JsonDeserialize(using = LocalDateDeserializer.class)
    @JsonSerialize(using = LocalDateSerializer.class)
    @JsonFormat(shape = JsonFormat.Shape.STRING, pattern = "dd-MM-yyyy")
    public LocalDate operationDate;
}

还可以使用Jackson的原生支持来序列化和反序列化日期。

 类似资料:
  • 嘿,伙计们,我最近将我的mac更新为最新的OS X 10.12.3以前我的rails项目运行良好,现在每当我启动rails服务器时,我的项目都会收到这个错误。我尝试了在stackoverflow中提供的很多不同的解决方案,但它仍然不起作用。 这里有一些我尝试过的 Postgres无法连接到服务器 PostgreSQL错误“无法连接到服务器:没有这样的文件或目录” 谢谢,请帮帮我

  • 谷歌推出了Android Studio 2.2,所以我将我的Android Studio 2.1更新为Android Studio 2.0。当我制作一个项目时,我会遇到以下错误(等等):

  • SOFABoot 2.3.x/2.4.x 升级到 2.5.x SOFABoot 2.3.x/2.4.x 基于 Spring Boot 1.4.2.RELEASE 版本开发,SOFABoot 2.5.x 则是基于 Spring Boot 1.5.x 版本开发。 从 SOFABoot 2.3.x/2.4.x 升级到 SOFABoot 2.5.x 需要重点考虑 Spring Boot 1.5.x 相较

  • 我最近将我的Android Studio从0.2.9更新到了0.3.1,当我试图编译我的项目时,我得到了一个错误: org.Gradle.tooling.gradleConnectionException:无法使用分级发行版“http://services.Gradle.org/distributions/gradle-1.7-bin.zip”执行生成。:无法使用分级发行版“http://serv

  • 问题内容: 我有一个简单的Java程序,该程序读取一个文本文件,将其分隔为“”(空格),显示第一个单词,等待2秒,显示下一个…等等…我想在Spring或其他一些GUI。 关于如何使用spring轻松更新单词的任何建议?遍历我的列表并以某种方式使用setText(); 我没有运气。我正在使用此方法在consol中打印我的单词,并向其中添加JFrame …在consol中效果很好,但是却发出了无尽的j

  • 在将优胜美地升级到El Capitan之后,我对mcrypt(和Laravel)有一个问题。当我运行本地站点(Laravel Framework版本4.2.17)时,我会 需要PHP扩展。 以下是我的设置: 1) 哪个php 2) php——版本 ############################################################################