Class AsWrapperTypeDeserializer
- java.lang.Object
-
- com.fasterxml.jackson.databind.jsontype.TypeDeserializer
-
- com.fasterxml.jackson.databind.jsontype.impl.TypeDeserializerBase
-
- com.fasterxml.jackson.databind.jsontype.impl.AsWrapperTypeDeserializer
-
- All Implemented Interfaces:
Serializable
public class AsWrapperTypeDeserializer extends TypeDeserializerBase implements Serializable
Type deserializer used withJsonTypeInfo.As.WRAPPER_OBJECTinclusion mechanism. Simple since JSON structure used is always the same, regardless of structure used for actual value: wrapping is done using a single-element JSON Object where type id is the key, and actual object data as the value.- See Also:
- Serialized Form
-
-
Field Summary
-
Fields inherited from class com.fasterxml.jackson.databind.jsontype.impl.TypeDeserializerBase
_baseType, _defaultImpl, _defaultImplDeserializer, _deserializers, _idResolver, _property, _typeIdVisible, _typePropertyName
-
-
Constructor Summary
Constructors Modifier Constructor Description AsWrapperTypeDeserializer(JavaType bt, TypeIdResolver idRes, String typePropertyName, boolean typeIdVisible, JavaType defaultImpl)protectedAsWrapperTypeDeserializer(AsWrapperTypeDeserializer src, BeanProperty property)
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description protected Object_deserialize(com.fasterxml.jackson.core.JsonParser p, DeserializationContext ctxt)Method that handles type information wrapper, locates actual subtype deserializer to use, and calls it to do actual deserialization.ObjectdeserializeTypedFromAny(com.fasterxml.jackson.core.JsonParser jp, DeserializationContext ctxt)Method called to let this type deserializer handle deserialization of "typed" object, when value itself may have been serialized using any kind of JSON value (Array, Object, scalar).ObjectdeserializeTypedFromArray(com.fasterxml.jackson.core.JsonParser jp, DeserializationContext ctxt)Method called to let this type deserializer handle deserialization of "typed" object, when value itself is serialized as JSON Array (regardless of Java type).ObjectdeserializeTypedFromObject(com.fasterxml.jackson.core.JsonParser jp, DeserializationContext ctxt)Deserializing type id enclosed using WRAPPER_OBJECT style is straightforwardObjectdeserializeTypedFromScalar(com.fasterxml.jackson.core.JsonParser jp, DeserializationContext ctxt)Method called to let this type deserializer handle deserialization of "typed" object, when value itself is serialized as a scalar JSON value (something other than Array or Object), regardless of Java type.TypeDeserializerforProperty(BeanProperty prop)Method called to create contextual version, to be used for values of given property.com.fasterxml.jackson.annotation.JsonTypeInfo.AsgetTypeInclusion()Accessor for type information inclusion method that deserializer uses; indicates how type information is (expected to be) embedded in JSON input.-
Methods inherited from class com.fasterxml.jackson.databind.jsontype.impl.TypeDeserializerBase
_deserializeWithNativeTypeId, _deserializeWithNativeTypeId, _findDefaultImplDeserializer, _findDeserializer, _handleMissingTypeId, _handleUnknownTypeId, baseType, baseTypeName, getDefaultImpl, getPropertyName, getTypeIdResolver, toString
-
Methods inherited from class com.fasterxml.jackson.databind.jsontype.TypeDeserializer
deserializeIfNatural, deserializeIfNatural
-
-
-
-
Constructor Detail
-
AsWrapperTypeDeserializer
public AsWrapperTypeDeserializer(JavaType bt, TypeIdResolver idRes, String typePropertyName, boolean typeIdVisible, JavaType defaultImpl)
- Since:
- 2.8
-
AsWrapperTypeDeserializer
protected AsWrapperTypeDeserializer(AsWrapperTypeDeserializer src, BeanProperty property)
-
-
Method Detail
-
forProperty
public TypeDeserializer forProperty(BeanProperty prop)
Description copied from class:TypeDeserializerMethod called to create contextual version, to be used for values of given property. This may be the type itself (as is the case for bean properties), or values contained (forCollectionorMapvalued properties).- Specified by:
forPropertyin classTypeDeserializerBase
-
getTypeInclusion
public com.fasterxml.jackson.annotation.JsonTypeInfo.As getTypeInclusion()
Description copied from class:TypeDeserializerAccessor for type information inclusion method that deserializer uses; indicates how type information is (expected to be) embedded in JSON input.- Specified by:
getTypeInclusionin classTypeDeserializerBase
-
deserializeTypedFromObject
public Object deserializeTypedFromObject(com.fasterxml.jackson.core.JsonParser jp, DeserializationContext ctxt) throws IOException
Deserializing type id enclosed using WRAPPER_OBJECT style is straightforward- Specified by:
deserializeTypedFromObjectin classTypeDeserializer- Throws:
IOException
-
deserializeTypedFromArray
public Object deserializeTypedFromArray(com.fasterxml.jackson.core.JsonParser jp, DeserializationContext ctxt) throws IOException
Description copied from class:TypeDeserializerMethod called to let this type deserializer handle deserialization of "typed" object, when value itself is serialized as JSON Array (regardless of Java type). Method needs to figure out intended polymorphic type, locateJsonDeserializerto use, and call it with JSON data to deserializer (which does not contain type information).- Specified by:
deserializeTypedFromArrayin classTypeDeserializer- Throws:
IOException
-
deserializeTypedFromScalar
public Object deserializeTypedFromScalar(com.fasterxml.jackson.core.JsonParser jp, DeserializationContext ctxt) throws IOException
Description copied from class:TypeDeserializerMethod called to let this type deserializer handle deserialization of "typed" object, when value itself is serialized as a scalar JSON value (something other than Array or Object), regardless of Java type. Method needs to figure out intended polymorphic type, locateJsonDeserializerto use, and call it with JSON data to deserializer (which does not contain type information).- Specified by:
deserializeTypedFromScalarin classTypeDeserializer- Throws:
IOException
-
deserializeTypedFromAny
public Object deserializeTypedFromAny(com.fasterxml.jackson.core.JsonParser jp, DeserializationContext ctxt) throws IOException
Description copied from class:TypeDeserializerMethod called to let this type deserializer handle deserialization of "typed" object, when value itself may have been serialized using any kind of JSON value (Array, Object, scalar). Should only be called if JSON serialization is polymorphic (not Java type); for example when using JSON node representation, or "untyped" Java object (which may be Map, Collection, wrapper/primitive etc).- Specified by:
deserializeTypedFromAnyin classTypeDeserializer- Throws:
IOException
-
_deserialize
protected Object _deserialize(com.fasterxml.jackson.core.JsonParser p, DeserializationContext ctxt) throws IOException
Method that handles type information wrapper, locates actual subtype deserializer to use, and calls it to do actual deserialization.- Throws:
IOException
-
-