Skip to content

Jackson Release 2.5

cowtowncoder edited this page Jan 2, 2015 · 42 revisions

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.

Patches

Beyond initial 2.5.0 (described here), following patch releases have been made or are planned:

  • 2.5.1 (not yet released)

Changes: compatibility

No changes to JDK requirements or baseline requirements/supports for external platforms (like Android or Scala versions)

Changes, core

  • #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 for java.util.Map entries separate from inclusion of Map 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() during createContextual() 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.Features via ObjectReader
  • #608: Allow (re)config of JsonGenerator.Features via ObjectWriter
  • #622: Support for non-scalar ObjectId Reference deserialization (like JSOG)
  • #631: Update current value of JsonParser, 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() via ObjectWriter
  • #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

Changes, Data Formats

  • #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 writing nulls (part of CsvSchema; method withNullValue())
  • #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

Changes, other modules

  • #32: Add support for Bean Validation (JSR-303) annotations
Clone this wiki locally