-
-
Notifications
You must be signed in to change notification settings - Fork 1.2k
Jackson Release 2.19
Tatu Saloranta edited this page Feb 9, 2025
·
95 revisions
Jackson Version 2.19 development is on-going in January, 2025.
This wiki page gives a list of links to all changes (with brief descriptions) that will be included, as well as about original plans for bigger changes (and in some cases changes to plans, postponing).
Branch is under development.
No release yet
Same as Jackson 2.18, SDK 26
Same as Jackson 2.18
- Handling of "orphan" tildes (
~not part of~0or~1escape sequence) changed:-
#1361:
JsonPointerparsing of '~' not followed by "0" or "1" unexpected - NOTE: use of such "orphan" tildes is not (well) covered by JSON Pointer specs so expected handling is not defined.
- Old behavior used
~as "general escape", i.e. skipped~and included following character - New behavior feels more expected: unpaired
~will simply be included as-is
-
#1361:
-
#1467: Support
@JsonUnwrappedwith@JsonCreator
- No changes since 2.18
-
#1328: Optimize handling of
JsonPointer.head() -
#1356: Make
JsonGenerator::writeTypePrefixmethod to not write aWRAPPER_ARRAYwhentypeIdDef.id == null -
#1361:
JsonPointerparsing of '~' not followed by "0" or "1" unexpected -
#1394: Wrong/misleading error for "extra" close token (
]or}) when at root level
-
#1467: Support
@JsonUnwrappedwith@JsonCreator -
#2145: Add
JsonNode.optional(String name)andoptional(int index)methods -
#2461: Nested
@JsonUnwrappedproperty names not correctly handled -
#2951: Allow inverting
@JsonProperty(access=)withMapperFeature.INVERSE_READ_WRITE_ACCESSto work differently on server and client side -
#4388: Allow using
@JsonPropertyOrderwith "any" (@JsonAnyGetter) properties - #4674: Allow setting global enum naming strategy similar to property naming strategy
- #4676: Support other enum naming strategies than camelCase
-
#4680: Custom key deserialiser registered for
Object.classin nested Map object is ignored when Map key type not defined -
#4772: Serialization and deserialization issue of sub-types used with
JsonTypeInfo.Id.DEDUCTIONwhere sub-types are Object and Array -
#4773:
SerializationFeature.ORDER_MAP_ENTRIES_BY_KEYSshould not apply to Maps with uncomparable keys - #4849: Not able to deserialize Enum with default typing after upgrading 2.15.4 -> 2.17.1
-
#4863: Add basic Stream support in
JsonNode:valueStream(),entryStream(),forEachEntry() -
#4867: Add
Optional<JsonNode> JsonNode.asOptional()convenience method - #4896: Coercion shouldn't be necessary for Enums specifying an empty string
-
#4934:
DeserializationContext.readTreeAsValue()handles null nodes differently fromObjectMapper.treeToValue() - #4953: Allow clearing all caches to avoid classloader leaks
-
#4959: Add explicit deserializer for
ThreadGroup
-
#308: Incorrect serialization for
LogicalType.Decimal(JavaBigDecimal) - #422: Avro generation failed with enums containing values with special characters
- #535: AvroSchemaGenerator: logicalType(s) never set for non-date classes
-
#536: Add Logical Type support for
java.util.UUID
-
#502: Header names seem to be trimmed (add
CsvParser.Feature.TRIM_HEADER_SPACES))
- #300: Floats are encoded with sign extension while doubles without
-
#502: Add an optional extended parser subclass (
YAMLAnchorReplayingFactory) able to inline anchors
-
#1: Add deserialization support for
Table<R, C, V>
-
#336: Optimize
InstantDeserializeraddInColonToOffsetIfMissing() -
#337: Negative
Durationdoes not round-trip properly withWRITE_DURATIONS_AS_TIMESTAMPSenabled -
#342: Lenient deserialization of
LocalDate,LocalDateTimeis not time-zone aware
- #835: Remove old SingletonSupport class and unified with KotlinFeature.SingletonSupport.
- #839: Remove useKotlinPropertyNameForGetter and unify with kotlinPropertyNameAsImplicitName.
- #858: Minor performance improvement of findDefaultCreator in edge cases.
- #200: Narrow types to format specific (e.g. CBORMapper) when resolving via JAX-RS Providers
- #36: Narrow types to format specific (e.g. CBORMapper) when resolving via JAX-RS Providers
-
#171: Add a
JSON.Feature.WRITE_RECORD_FIELDS_IN_DECLARATION_ORDERfor retaining Serialization order of Java Records (instead of alphabetic)