-
-
Notifications
You must be signed in to change notification settings - Fork 1.2k
Jackson Release 2.5
Version 2.5.0 was released January 1st, 2015. It is a "minor" release following 2.4, meaning that it adds new functionality but be backwards compatible with earlier 2.x releases.
Beyond initial 2.5.0 (described here), following patch releases have been made or are planned:
No changes to JDK requirements or baseline requirements/supports for external platforms (like Android or Scala versions).
One accidental change is with serialization of Map.Entry
(see #565 for details): before 2.5, serialization used default POJO approach, resulting in something like:
{ "key" : <key string>, "value" : <value object> }
but with #565 output was simplified to be:
{ <key string> : <value object> }
to support more natural serialization of things like List<Map.Entry>
.
It is worth noting that before 2.5 only serialization would work; deserialization was not supported.
With 2.5, both serialization and deserialization work.
-
#47: Add
@JsonCreator.mode
property to explicitly choose between delegating- and property-based creators -
#48: Allow
@JsonView
for (method) parameters too (not used by Jackson itself, but requested by frameworks) - Added
@JsonInclude.content
to allow specifying inclusion criteria forjava.util.Map
entries separate from inclusion ofMap
values
-
#47: Support
@JsonValue
for (Map) key serialization -
#148:
BytesToNameCanonicalizer
can mishandle leading null byte(s). -
#164: Add
JsonGenerator.Feature.IGNORE_UNKNOWN
(but support via individual data format modules)
-
#113: Problem deserializing polymorphic types with
@JsonCreator
-
#165: Give custom Deserializers access to the resolved target Class of the currently deserialized object (via
DeserializationContext.getContextualType()
duringcreateContextual()
callback) -
#421:
@JsonCreator
not used in case of multiple creators with parameter names - #521: Keep bundle annotations, prevent problems with recursive
-
#527: Add support for
@JsonInclude(contents=Include.NON_NULL)
(and others) for Maps -
#528: Add support for
JsonType.As.EXISTING_PROPERTY
- #539: Problem with post-procesing of "empty bean" serializer
-
#540: Support deserializing
[]
as null or empty collection when the java type is a not an object (aka "work around PHP issues") - #543: Problem resolving self-referential recursive types
- #552: Improved handling for ISO-8601 (date) format
-
#560:
@JsonCreator
to deserialize BigInteger to Enum -
#565: Add support for handling
Map.Entry
-
#566: Add support for case-insensitive deserialization (
MapperFeature.ACCEPT_CASE_INSENSITIVE_PROPERTIES
) -
#571: Add support in ObjectMapper for custom
ObjectReader
,ObjectWriter
(sub-classes) -
#607: Allow (re)config of
JsonParser.Feature
s viaObjectReader
-
#608: Allow (re)config of
JsonGenerator.Feature
s viaObjectWriter
-
#622: Support for non-scalar
ObjectId
Reference deserialization (like JSOG) -
#631: Update
current value
ofJsonParser
,JsonGenerator
from standard serializers, deserializers -
#638: Add annotation-based method(s) for injecting properties during serialization (using
@JsonAppend
,VirtualBeanPropertyWriter
) -
#654: Add support for (re)configuring
JsonGenerator.setRootValueSeparator()
viaObjectWriter
-
#653: Added
MapperFeature.USE_STD_BEAN_NAMING
(by default, Jackson property name handling differs from std if 2 first chars are upper case) -
#655: Add
ObjectWriter.writeValues()
for writing value sequences -
#660
@JsonCreator
-annotated factory method is ignored if constructor exists
-
#50: Support
JsonGenerator.Feature.IGNORE_KNOWN
for CSV, to ignoring extra columns -
#53: Add a way to specify "null value" (String) for
CsvGenerator
to use when writingnull
s (part ofCsvSchema
; methodwithNullValue()
) -
#56: Support comments (either via
CsvSchema
, or using std `JsonParser.Feature.ALLOW_YAML_COMMENTS. - #57: Support simple array values
-
#61: Add a feature to always quote non-numeric values:
CsvGenerator.Feature.ALWAYS_QUOTE_STRINGS
- #22: Add support for disabling use of YAML native Type Ids
- #23: Add support for disabling use of YAML native Object Ids
- #32: Add support for Bean Validation (JSR-303) annotations