-
-
Notifications
You must be signed in to change notification settings - Fork 1.2k
Jackson Release 2.4
Version 2.4[.0] is currently being developed, as of March 2014. It will be a "minor" release following 2.4, meaning that it adds new functionality but be backwards compatible with earlier 2.x releases.
Beyond initial 2.4.0 (described here), following patch releases have been made or are planned:
(none yet)
Support for oldest Android versions (2.x) will not be continued, as Jackson modules may use full feature set of JDK 1.6.
Scala module will only support Scala 2.10 and above (and will support 2.11 for the first time)
The biggest improvement with 2.4 is the ability to finally resolve so-called Object Id Forward References between objects: that is, declaration of an Object Id need not come before reference in document order (or be directly reference from within same object).
Resolution of property name conflicts has been improved: "cleaved" properties are not considered to be conflicts, as long there are no ambiguities in renaming (with 2.3 and earlier some cases with alternate names are considered errors even if intent can be decuded and there is no actual ambiguity). Part of the fix includes distinguishing between implicit and explicit names for parameters as well, in cases where implicit names can be introspector (using Paranameter, or JDK8 feature).
Other planned high-level improvements include:
- Improved support for value conversions that include
JsonNode
values.
-
#31: Allow use of
@JsonPropertyOrder
for properties (not just classes) -
#32: Add
@JsonProperty.index
for indicating optional numeric index of the property.
- #121: Increase size of low-level byte[]/char[] input/output buffers (from 4k->8k for bytes, 2k->4k for chars)
-
#127: Add
JsonGenerator.writeStartArray(int size)
for binary formats
-
#88: Prevent use of type information for
JsonNode
via default typing - #149: Allow use of "stringified" indexes for Enum values
- #176: Allow use external Object Id resolver (to use with @JsonIdentityInfo etc)
-
#335: Allow use of
@JsonPropertyOrder(alphabetic=true)
for Map properties -
#353: Problems with polymorphic types,
JsonNode
(related to #88) - #359: Converted object not using explicitly annotated serializer
-
#369: Incorrect comparison for renaming in
POJOPropertyBuilder
-
#375: Add
readValue()
/readPropertyValue()
methods inDeserializationContext
- #381: Allow inlining/unwrapping of value from single-component JSON array
- #390: Change order in which managed/back references are resolved (now back-ref first, then forward)
- #407: Properly use null handlers for value types when serializer Collection and array types
-
#428:
PropertyNamingStrategy
will rename even explicit name from@JsonProperty
- #434: Ensure that DecimalNodes with mathematically equal values are equal
- #76: UnrecognizedPropertyException when containing object is a Collection
-
#83: Add support for
@JsonUnwrapped
-
#99: Problem with
DeserializationFeature.FAIL_ON_UNKNOWN_PROPERTIES
, Lists - #108: Unwrapped list ignore attributes if 2 lists in sequence
-
#111: Make vanilla
JaxbAnnotationIntrospector
work, without having to useXmlJaxbAnnotationIntrospector
-
#43: Add support for
HostAndPort
The very first official release:
- Supports
java.nio.file.Path
-
#49: Add
JaxRSFeature.ALLOW_EMPTY_INPUT
, disabling of which can prevent mapping of empty input into Java null value
Changes, Jackson jr
The very first official release!
Parameter Names (JDK8 only)
The very first official release!
- Support discovery of parameter names for JSON Creator methods.