Android 上的 Jackson JSR310

Jackson JSR310 on Android

我正在构建一个 Android 应用程序,它将 JSON 文件从私有存储加载到 class。 class 定义如下:

public class Foo {
  public Instant createdAt = Instant.now();
}

我的 gradle.build 中有以下内容:

implementation 'com.fasterxml.jackson.core:jackson-annotations:2.13.2'
implementation 'com.fasterxml.jackson.core:jackson-core:2.13.2'
implementation 'com.fasterxml.jackson.core:jackson-databind:2.13.2'
implementation 'com.fasterxml.jackson.datatype:jackson-datatype-jsr310:2.13.2'

但是当我尝试将 class 序列化为 JSON 时,我得到:

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

我之前在 Java 中做过无数次(虽然那不是 Android 项目,并且是用 Maven 而不是 Gradle 编译的),我'我们从来没有遇到过问题。这是我第一次尝试将即时日期合并到 Jackson 的 Android 应用程序中。

我错过了什么?

我必须补充:

.registerModule(new JavaTimeModule())

到 ObjectMapper,然后它开始工作。我不确定为什么我必须为 Gradle-based 构建这样做,而我以前从来没有为 Maven-based 构建这样做过。