-
-
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.
Branch is closed for all new releases (including micro-patches)
Beyond initial 2.5.0 (described here), following patch releases were made:
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(content=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