是否有JDK8 java.time的jackson数据类型模块?

Bre*_*yan 28 jackson java-8 jackson-modules java-time

我正在为新的JDK8 java.time类寻找一个模块.我查看了FasterXML GitHub项目列表,目前没有找到.

据我所知,Jackson仍然是针对JDK6编译的,所以不能直接使用这些类,并且必须将它构建为一个单独的模块,正如Joda所要求的那样.

我不介意启动这个项目,但是看看是否还有其他工作正在进行中.

Phi*_*ppS 65

如前所述,Jackson-Datatype-JSR310支持Java 8 Time.

自Jackson 2.6.0以来,"旧"JSR310Module已被弃用.它被JavaTimeModule取代.Maven依赖是相同的(您可以在Maven Central中找到当前版本):

<dependency>
    <groupId>com.fasterxml.jackson.datatype</groupId>
    <artifactId>jackson-datatype-jsr310</artifactId>
    <version>2.6.0</version>
</dependency>
Run Code Online (Sandbox Code Playgroud)

您必须像这样注册模块:

ObjectMapper mapper = new ObjectMapper();
mapper.registerModule(new JavaTimeModule());
Run Code Online (Sandbox Code Playgroud)

请注意,从2.6开始,由于存在旧版本JSR310Module,因此该模块不支持自动注册.旧版本具有相同的功能,但默认配置略有不同:请参阅com.fasterxml.jackson.datatype.jsr310.JSR310Module了解详情.

GitHub上的JavaTimeModule源代码

JavaTimeModule用法

  • 特别有用的答案,因为它提到了名称更改,以及有关自动注册的额外警告. (6认同)

Sta*_*Man 14

最完整的数据类型模块列表可以在Github的Jackson"门户"页面找到:

https://github.com/FasterXML/jackson

它列出了"JSR-310:支持"Java 8 Dates".命名有点不透明,但它指的是标准化过程,通过JSR应该最终生成新的Java8 Date API(如果它还没有最终的那么;进程花了一段时间).

直接链接是:https://github.com/FasterXML/jackson-datatype-jsr310

  • 请注意,您还必须像这样注册模块:`private static final ObjectMapper jsonMapper = new ObjectMapper()。findAndRegisterModules();` (2认同)

小智 9

您只需要导入jsr310 模块即可。

<dependency>
    <groupId>com.fasterxml.jackson.datatype</groupId>
    <artifactId>jackson-datatype-jsr310</artifactId>
    <version>2.5.0</version>
</dependency>
Run Code Online (Sandbox Code Playgroud)

如果您的项目中没有启用模块自动扫描,您需要注册它:

ObjectMapper mapper = new ObjectMapper();
mapper.registerModule(new JSR310Module());
Run Code Online (Sandbox Code Playgroud)

  • 对于 Jackson 版本 &gt; 2.6,我建议: new JavaTimeModule() 而不是 new JSR310Module() (2认同)

dav*_*xxx 5

如果您使用 Spring Boot 2 并依赖于spring-boot-starter-web启动器,那么您将同时拥有以下依赖项:已弃用的 (jackson-datatype-jsr310) 和实际的 (jackson-datatype-jdk8)。

[信息] +- org.springframework.boot:spring-boot-starter-web:jar:2.0.0.M3:compile
[信息] | +- org.springframework.boot:spring-boot-starter-json:jar:2.0.0.M3:编译
[信息] | | +- com.fasterxml.jackson.datatype:jackson-datatype-jdk8:jar:2.9.0.pr4:编译
[信息] | | +- com.fasterxml.jackson.datatype:jackson-datatype-jsr310:jar:2.9.0.pr4:编译