Baeldung
Jackson 3 新特性解析:架构重构与迁移指南
Jackson 3.0 对这款 Java 生态最流行的 JSON 处理库进行了重大架构重构。最低 JDK 要求从 Java 8 提升至 Java 17,构件 groupId 改为 tools.jackson.core,包名由 com.fasterxml.jackson 迁移至 tools.jackson,使 2.x 与 3.x 可在同一 classpath 共存。ObjectMapper 改为不可变对象,配置须通过 Builder 模式在实例化前完成,解决了长期存在的线程安全问题。JsonProcessingException 被非受检的 JacksonException 取代,简化了 Stream 与 Lambda 中的异常处理。jsr310、jdk8 与参数名三个模块被整合进 jackson-databind,原生支持 Records、Optional 与 java.time。默认行为方面,FAIL_ON_UNKNOWN_PROPERTIES 改为 false,默认启用浮点快速解析,日期时间配置统一为 DateTimeFeature,标准 Bean 命名成为永久默认。JsonNode 树模型新增 ObjectTreeNode 等子类型及更安全的取值方法。迁移需移除废弃 API 并调整导入语句,长期收益显著。