Skip to content

Jackson Release 2.9

Tatu Saloranta edited this page Oct 12, 2016 · 175 revisions

Version 2.9 development has not yet been started, as of July 2016, but will start soon.

New Modules, status changes

Changes: compatibility

java.sql.Date

As per databind#219 java.sql.Date will finally use same "timestamp-or-String" determination as java.util.Date and java.util.Calendar. This means that with vanilla, unchanged settings, values will be serialized as numeric timestamps. Note that the default String serialization will still default to java.sql.Date.String(), and not to default formatting java.util.Date uses.

Major features of 2.9

Implemented

  1. Add separate exception type for "pojo configuration problem" (InvalidDefinitionException), distinct from "json input" problem; in general to distinguish between bad configuration (server-side issue) and bad data (client issue) #1356
  2. Per-property custom serialization inclusion (@JsonInclude(value=Include.CUSTOM, valueFilter=MyExcluder.class) #888

Under construction

Planned

  1. Per-property overwrite-vs-merge annotation/handling, to allow for merging of configuration information (for example) #1399
  2. Ability to override handling of null for deserialization #1402
  3. Aliases, to allow migration: alternate property id names to accept (but not write) #1029
  4. Non-blocking JSON/Smile parser?
  5. Rewrite of property/creator introspection code, to resolve most open issues wrt Creator auto-detection and name-detection
  6. Support for @JsonIncludeProperties (opposite of @JsonIgnoreProperties) #1296
  7. Allow pre-defining Object Ids; pluggable Object Id converters? #693
  8. "Safe" ObjectReader, ObjectWriter; that is, ones that does NOT throw checked exceptions (wrap IOExceptions), to work better with Java 8 Streams #779
  9. A way to force a supertype as type id to use during serialization: this is needed to avoid deserialization problems for things like concrete Hibernate collection type.

And possibly

  • Protobuf: Schema building by hand
  • Comma-separated "ints in a String"

Change list

Changes, core

  • #103: Add JsonInclude.Include.CUSTOM, properties for specifying filter(s) to use
  • #507: Support for default @JsonView for a class
  • #888: Allow specifying custom exclusion comparator via @JsonInclude, using JsonInclude.Include.CUSTOM
  • #1035: @JsonAnySetter assumes key of String, does not consider declared type
  • #1320: Add ObjectNode.put(String, BigInteger)
  • #1341: DeserializationFeature.FAIL_ON_MISSING_EXTERNAL_TYPE_ID_PROPERTY
  • #1356: Differentiate between input and code exceptions on deserialization
  • #1369: Improve @JsonCreator detection via AnnotationIntrospector by passing MappingConfig
  • #1371: Add MapperFeature.INFER_CREATOR_FROM_CONSTRUCTOR_PROPERTIES to allow disabling use of @CreatorProperties as explicit @JsonCreator equivalent

Clone this wiki locally