这是indexloc提供的服务,不要输入任何密码
Skip to content

Jackson Release 2.21

Tatu Saloranta edited this page Nov 14, 2025 · 31 revisions

Jackson Version 2.21 is being developed, as of September 2025.

This wiki page gives a list of links to all changes (with brief descriptions) that will eventually be included, as well as about original plans for bigger changes (and in some cases changes to plans, postponing).

Status

Version is under development (under branch 2.x).

It will likely be designated a Long-Term-Support (LTS) version once 2.21.0 is released.

Patches

No release yet.

Documentation

Articles, Blog posts

New Modules

Changes, compatibility

Android

Same as Jackson 2.20, SDK 26

JDK

Same as Jackson 2.20; mostly Java 8, with some modules requiring later JDKs:

  • jackson-datatype-hibernate: JDK 11 for some modules
  • jackson-jakarta-providers: JDK 11

Kotlin

Same as Jackson 2.20?

Compatibility: datatype modules

Changes, behavior

None


Major focus area(s)

Most wanted Features implemented


Full Change list

Changes, core

  • #314: Add JsonInclude.Value convenience constants
  • #316: Make JsonFormat.Features java.io.Serializable
  • #320: Add radix property to @JsonFormat annotation
  • #363: UTF-8 decoding should fail on Surrogate characters (0xD800 - 0xDFFF)
  • #708: FilteringParserDelegate cannot deserialize empty list
  • #1180: JsonLocation off for unrecognized tokens
  • #1470: Add method copyCurrentStructureExact() to JsonGenerator
  • #1477: Add JsonGenerator.has(StreamWriteCapability) convenience method
  • #1500: Add checks for surrogate pairing for UTF-8 generation
  • #1381: Add a way to specify "inject-only" with @JacksonInject
  • #1547: Un-deprecate SerializationFeature.WRITE_EMPTY_JSON_ARRAYS
  • #5045: If there is a no-parameter constructor marked as JsonCreator and a constructor reported as DefaultCreator, latter is incorrectly used
  • #5203: Fix null handling of EnumSetDeserializer
  • #5293: Fix minor typo in PropertyBindingException.getMessageSuffix()
  • #5313: Expose getConverter() in StdDelegatingSerializer for improved customizability

Changes, data formats

Avro

  • #628: Uncommon parent pom dependency configuration in Jackson 2.20/3.0
  • Upgrade avro lib dep to 1.11.5 (from 1.11.4)

CBOR

  • #599: Unable to deserialize stringref-enabled CBOR with ignored properties
  • #628: Uncommon parent pom dependency configuration in Jackson 2.20/3.0

CSV

  • #10: Missing null writes when writing Object[] values

Ion

  • #623: (ion) Upgrade ion-java dep to 1.11.11 (from 1.11.10)
  • #628: Uncommon parent pom dependency configuration in Jackson 2.20/3.0

Protobuf

  • #628: Uncommon parent pom dependency configuration in Jackson 2.20/3.0

Smile

  • #628: Uncommon parent pom dependency configuration in Jackson 2.20/3.0
  • #114: XmlMapper does not support StreamReadFeature.STRICT_DUPLICATE_DETECTION

YAML

  • #154: YAML file with no content throws MismatchedInputException when binding to Object type (POJO etc)

Changes, data types

Eclipse Collections

  • #198: Add support for MutableSortedMap/ImmutableSortedMap deserialization

Guava

  • #195: Add support for RangeMap class

Changes, other

  • #176: Cannot Deserialize JSON with @JsonProperty-annotated Record fields
  • #208: Support reading of double[]
  • #210: Support reading boolean[]/short[]/float[] values
Clone this wiki locally