-
-
Notifications
You must be signed in to change notification settings - Fork 1.2k
Jackson Release 2.9
Tatu Saloranta edited this page Dec 4, 2016
·
175 revisions
Version 2.9 development is on-going, as of October 2016, with tentative goal of getting RC1 out during December 2016.
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.
- 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 - Per-property custom serialization inclusion (
@JsonInclude(value=Include.CUSTOM, valueFilter=MyExcluder.class) #888 - Per-property overwrite-vs-merge annotation/handling, to allow for merging of configuration information (for example) #1399
- note: on-going work to increase coverage; some types (arrays, tree nodes) not yet supported
- Ability to override handling of
nullfor deserialization #1402
- Aliases, to allow migration: alternate property id names to accept (but not write) #1029
- Allow pre-defining Object Ids; pluggable Object Id converters? #693
-
DeserializationFeatureto automatically verify that value bound is full value and there is no trailing junk in input ("whole value verification") - "Safe"
ObjectReader,ObjectWriter; that is, ones that does NOT throw checked exceptions (wrapIOExceptions), to work better with Java 8 Streams #779 - Non-blocking JSON/Smile parser?
- Rewrite of property/creator introspection code, to resolve most open issues wrt Creator auto-detection and name-detection
- Support for
@JsonIncludeProperties(opposite of@JsonIgnoreProperties) #1296 - 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. #789
- Ability to force "inject-only" variant of
@JacksonInject#1381 -- also solves a few related issues wrt un-deserializable injectable values (which are common)
And possibly
- Protobuf: Schema building by hand
- Comma-separated "ints in a String" #1242
Some things that we are aware of but that very likely get postponed:
-
@JsonUnwrappedimprovements, which need major rewrite of unwrapped deserialization:- Support for
@JsonUnwrappedas@JsonCreatorparameter - Catching "unknown" properties
- Support for
- Rewrite of JSON Creator handling in general (although still listed above as possibly implemented)
-
#103: Add
JsonInclude.Include.CUSTOM, properties for specifying filter(s) to use -
#104: Add new properties in
@JsonSetter:merge,null/contentNulls
-
#219:
SqlDateSerializerdoes not obeySerializationConfig.Feature.WRITE_DATES_AS_TIMESTAMPS -
#476: Allow "Serialize as POJO" using
@JsonFormat(shape=Shape.OBJECT)class annotation -
#507: Support for default
@JsonViewfor a class -
#888: Allow specifying custom exclusion comparator via
@JsonInclude, usingJsonInclude.Include.CUSTOM -
#1035:
@JsonAnySetterassumes key ofString, does not consider declared type -
#1284: Make
StdKeySerializersuse newJsonGenerator.writeFieldId()forint/longkeys -
#1320: Add
ObjectNode.put(String, BigInteger) -
#1341:
DeserializationFeature.FAIL_ON_MISSING_EXTERNAL_TYPE_ID_PROPERTY -
#1347: Extend
ObjectMapper.configOverrides()to allow changing visibility rules - #1356: Differentiate between input and code exceptions on deserialization
-
#1369: Improve
@JsonCreatordetection viaAnnotationIntrospectorby passingMappingConfig -
#1371: Add
MapperFeature.INFER_CREATOR_FROM_CONSTRUCTOR_PROPERTIESto allow disabling use of@CreatorPropertiesas explicit@JsonCreatorequivalent - #1376: Add ability to disable JsonAnySetter/JsonAnyGetter via mixin
-
#1399: Add support for
@JsonSetter(merge=OptBoolean.TRUE) to allow "deep update" -
#1406:
ObjectMapper.readTree()methods do not returnnullon end-of-input -
#1428: Allow
@JsonValueon a field, not just getter -
#1454: Support
@JsonFormat.lenientforjava.util.Date,java.util.Calendar
-
#76: Add
YAMLGenerator.Feature.LITERAL_BLOCK_STYLEfor String output
-
#119:
dependenciesproperty should not be an Array but Object