PAYATHON 2026

Jackson 3.x 中如何导入 jacksonObjectMapper?

数据阿明

结论

Jackson 3.x 仍提供 jacksonObjectMapper,但包名有所变化。将 Kotlin 模块依赖改为 Jackson 3.x 对应的 tools.jackson.module 坐标,并将相关 Jackson 导入改为 tools.jackson 包名。

原代码中的两条导入应改为:

import tools.jackson.databind.ObjectMapper
import tools.jackson.module.kotlin.jacksonObjectMapper

初始化写法可以保留:

@JvmField
val JACKSON_OBJECT_MAPPER: ObjectMapper = jacksonObjectMapper()

更新依赖

以 Gradle 为例,添加 Jackson 3.x 的 Kotlin 模块依赖,并将占位符替换为项目选用的 Jackson 3.x 版本:

dependencies {
    implementation("tools.jackson.module:jackson-module-kotlin:<jackson3-version>")
}

Jackson Kotlin 模块 3.x 文档使用的导入是 tools.jackson.module.kotlin.jacksonObjectMapper,其中也展示了 jacksonObjectMapper() 的用法。Jackson Kotlin 模块 3.x 文档

迁移时检查其他导入

示例类还导入了 com.fasterxml.jackson.databind.ObjectMapper。升级到 Jackson 3.x 后,这类 Jackson 自身的类型也要检查,并改为对应的 tools.jackson 包名。org.apache.commons.lang3.StringUtils 和 Togglz 类型等其他库的导入不在这次包名迁移范围内。

Jackson 3.x 使用新的 Maven groupId 和 Java 包名,因此迁移时需要同步更新依赖和代码中的包名。还应确保 Jackson 相关依赖与代码使用同一主版本,并按照官方迁移指南检查其他 API 变化。Jackson 3 迁移指南

备注:内容仅供参考。