public abstract class StdDeserializer<T> extends JsonDeserializer<T> implements java.io.Serializable
JsonDeserializer.None
Modifier and Type | Field and Description |
---|---|
protected java.lang.Class<?> |
_valueClass
Type of values this deserializer handles: sometimes
exact types, other time most specific supertype of
types deserializer handles (which may be as generic
as
Object in some case) |
protected static int |
F_MASK_INT_COERCIONS
Bitmask that covers
DeserializationFeature.USE_BIG_INTEGER_FOR_INTS
and DeserializationFeature.USE_LONG_FOR_INTS , used for more efficient
cheks when coercing integral values for untyped deserialization. |
private static long |
serialVersionUID |
Modifier | Constructor and Description |
---|---|
protected |
StdDeserializer(java.lang.Class<?> vc) |
protected |
StdDeserializer(JavaType valueType) |
protected |
StdDeserializer(StdDeserializer<?> src)
Copy-constructor for sub-classes to use, most often when creating
new instances for
ContextualDeserializer . |
Modifier and Type | Method and Description |
---|---|
protected java.lang.Object |
_coerceIntegral(com.fasterxml.jackson.core.JsonParser p,
DeserializationContext ctxt)
Helper method called in case where an integral number is encountered, but
config settings suggest that a coercion may be needed to "upgrade"
Number into "bigger" type like Long or
BigInteger |
protected T |
_deserializeFromEmpty(com.fasterxml.jackson.core.JsonParser jp,
DeserializationContext ctxt)
Helper method that may be used to support fallback for Empty String / Empty Array
non-standard representations; usually for things serialized as JSON Objects.
|
protected void |
_failDoubleToIntCoercion(com.fasterxml.jackson.core.JsonParser jp,
DeserializationContext ctxt,
java.lang.String type) |
protected boolean |
_hasTextualNull(java.lang.String value)
Helper method called to determine if we are seeing String value of
"null", and, further, that it should be coerced to null just like
null token.
|
protected boolean |
_isIntNumber(java.lang.String text)
Helper method to check whether given text refers to what looks like a clean simple
integer number, consisting of optional sign followed by a sequence of digits.
|
protected boolean |
_isNaN(java.lang.String text) |
protected boolean |
_isNegInf(java.lang.String text) |
protected boolean |
_isPosInf(java.lang.String text) |
protected java.lang.Boolean |
_parseBoolean(com.fasterxml.jackson.core.JsonParser p,
DeserializationContext ctxt) |
protected boolean |
_parseBooleanFromOther(com.fasterxml.jackson.core.JsonParser p,
DeserializationContext ctxt) |
protected boolean |
_parseBooleanPrimitive(com.fasterxml.jackson.core.JsonParser jp,
DeserializationContext ctxt) |
protected java.lang.Byte |
_parseByte(com.fasterxml.jackson.core.JsonParser p,
DeserializationContext ctxt) |
protected java.util.Date |
_parseDate(com.fasterxml.jackson.core.JsonParser p,
DeserializationContext ctxt) |
protected java.lang.Double |
_parseDouble(com.fasterxml.jackson.core.JsonParser jp,
DeserializationContext ctxt) |
protected double |
_parseDoublePrimitive(com.fasterxml.jackson.core.JsonParser jp,
DeserializationContext ctxt) |
protected java.lang.Float |
_parseFloat(com.fasterxml.jackson.core.JsonParser jp,
DeserializationContext ctxt) |
protected float |
_parseFloatPrimitive(com.fasterxml.jackson.core.JsonParser jp,
DeserializationContext ctxt) |
protected java.lang.Integer |
_parseInteger(com.fasterxml.jackson.core.JsonParser p,
DeserializationContext ctxt) |
protected int |
_parseIntPrimitive(com.fasterxml.jackson.core.JsonParser p,
DeserializationContext ctxt) |
protected java.lang.Long |
_parseLong(com.fasterxml.jackson.core.JsonParser p,
DeserializationContext ctxt) |
protected long |
_parseLongPrimitive(com.fasterxml.jackson.core.JsonParser p,
DeserializationContext ctxt) |
protected java.lang.Short |
_parseShort(com.fasterxml.jackson.core.JsonParser p,
DeserializationContext ctxt) |
protected short |
_parseShortPrimitive(com.fasterxml.jackson.core.JsonParser jp,
DeserializationContext ctxt) |
protected java.lang.String |
_parseString(com.fasterxml.jackson.core.JsonParser p,
DeserializationContext ctxt)
Helper method used for accessing String value, if possible, doing
necessary conversion or throwing exception as necessary.
|
java.lang.Object |
deserializeWithType(com.fasterxml.jackson.core.JsonParser jp,
DeserializationContext ctxt,
TypeDeserializer typeDeserializer)
Base implementation that does not assume specific type
inclusion mechanism.
|
protected JsonDeserializer<?> |
findConvertingContentDeserializer(DeserializationContext ctxt,
BeanProperty prop,
JsonDeserializer<?> existingDeserializer)
Helper method that can be used to see if specified property has annotation
indicating that a converter is to be used for contained values (contents
of structured types; array/List/Map values)
|
protected JsonDeserializer<java.lang.Object> |
findDeserializer(DeserializationContext ctxt,
JavaType type,
BeanProperty property)
Helper method used to locate deserializers for properties the
type this deserializer handles contains (usually for properties of
bean types)
|
protected java.lang.Boolean |
findFormatFeature(DeserializationContext ctxt,
BeanProperty prop,
java.lang.Class<?> typeForDefaults,
com.fasterxml.jackson.annotation.JsonFormat.Feature feat)
Convenience method that uses
findFormatOverrides(com.fasterxml.jackson.databind.DeserializationContext, com.fasterxml.jackson.databind.BeanProperty, java.lang.Class<?>) to find possible
defaults and/of overrides, and then calls
JsonFormat.Value.getFeature(feat)
to find whether that feature has been specifically marked as enabled or disabled. |
protected com.fasterxml.jackson.annotation.JsonFormat.Value |
findFormatOverrides(DeserializationContext ctxt,
BeanProperty prop,
java.lang.Class<?> typeForDefaults)
Helper method that may be used to find if this deserializer has specific
JsonFormat settings, either via property, or through type-specific
defaulting. |
java.lang.Class<?> |
getValueClass()
Deprecated.
Since 2.3 use
handledType() instead |
JavaType |
getValueType()
Exact structured type deserializer handles, if known.
|
java.lang.Class<?> |
handledType()
Method for accessing type of values this deserializer produces.
|
protected void |
handleUnknownProperty(com.fasterxml.jackson.core.JsonParser jp,
DeserializationContext ctxt,
java.lang.Object instanceOrClass,
java.lang.String propName)
Method called to deal with a property that did not map to a known
Bean property.
|
protected boolean |
isDefaultDeserializer(JsonDeserializer<?> deserializer)
Method that can be called to determine if given deserializer is the default
deserializer Jackson uses; as opposed to a custom deserializer installed by
a module or calling application.
|
protected boolean |
isDefaultKeyDeserializer(KeyDeserializer keyDeser) |
protected static double |
parseDouble(java.lang.String numStr)
Helper method for encapsulating calls to low-level double value parsing; single place
just because we need a work-around that must be applied to all calls.
|
deserialize, deserialize, findBackReference, getDelegatee, getEmptyValue, getEmptyValue, getKnownPropertyNames, getNullValue, getNullValue, getObjectIdReader, isCachable, replaceDelegatee, unwrappingDeserializer
private static final long serialVersionUID
protected static final int F_MASK_INT_COERCIONS
DeserializationFeature.USE_BIG_INTEGER_FOR_INTS
and DeserializationFeature.USE_LONG_FOR_INTS
, used for more efficient
cheks when coercing integral values for untyped deserialization.protected final java.lang.Class<?> _valueClass
Object
in some case)protected StdDeserializer(java.lang.Class<?> vc)
protected StdDeserializer(JavaType valueType)
protected StdDeserializer(StdDeserializer<?> src)
ContextualDeserializer
.public java.lang.Class<?> handledType()
JsonDeserializer
Default implementation will return null, which means almost same
same as returning Object.class
would; that is, that
nothing is known about handled type.
handledType
in class JsonDeserializer<T>
@Deprecated public final java.lang.Class<?> getValueClass()
handledType()
insteadpublic JavaType getValueType()
Default implementation just returns null.
protected boolean isDefaultDeserializer(JsonDeserializer<?> deserializer)
JacksonStdImpl
annotation on deserializer class.protected boolean isDefaultKeyDeserializer(KeyDeserializer keyDeser)
public java.lang.Object deserializeWithType(com.fasterxml.jackson.core.JsonParser jp, DeserializationContext ctxt, TypeDeserializer typeDeserializer) throws java.io.IOException
deserializeWithType
in class JsonDeserializer<T>
typeDeserializer
- Deserializer to use for handling type informationjava.io.IOException
protected final boolean _parseBooleanPrimitive(com.fasterxml.jackson.core.JsonParser jp, DeserializationContext ctxt) throws java.io.IOException
java.io.IOException
protected final java.lang.Boolean _parseBoolean(com.fasterxml.jackson.core.JsonParser p, DeserializationContext ctxt) throws java.io.IOException
java.io.IOException
protected final boolean _parseBooleanFromOther(com.fasterxml.jackson.core.JsonParser p, DeserializationContext ctxt) throws java.io.IOException
java.io.IOException
protected java.lang.Byte _parseByte(com.fasterxml.jackson.core.JsonParser p, DeserializationContext ctxt) throws java.io.IOException
java.io.IOException
protected java.lang.Short _parseShort(com.fasterxml.jackson.core.JsonParser p, DeserializationContext ctxt) throws java.io.IOException
java.io.IOException
protected final short _parseShortPrimitive(com.fasterxml.jackson.core.JsonParser jp, DeserializationContext ctxt) throws java.io.IOException
java.io.IOException
protected final int _parseIntPrimitive(com.fasterxml.jackson.core.JsonParser p, DeserializationContext ctxt) throws java.io.IOException
java.io.IOException
protected final java.lang.Integer _parseInteger(com.fasterxml.jackson.core.JsonParser p, DeserializationContext ctxt) throws java.io.IOException
java.io.IOException
protected final java.lang.Long _parseLong(com.fasterxml.jackson.core.JsonParser p, DeserializationContext ctxt) throws java.io.IOException
java.io.IOException
protected final long _parseLongPrimitive(com.fasterxml.jackson.core.JsonParser p, DeserializationContext ctxt) throws java.io.IOException
java.io.IOException
protected final java.lang.Float _parseFloat(com.fasterxml.jackson.core.JsonParser jp, DeserializationContext ctxt) throws java.io.IOException
java.io.IOException
protected final float _parseFloatPrimitive(com.fasterxml.jackson.core.JsonParser jp, DeserializationContext ctxt) throws java.io.IOException
java.io.IOException
protected final java.lang.Double _parseDouble(com.fasterxml.jackson.core.JsonParser jp, DeserializationContext ctxt) throws java.io.IOException
java.io.IOException
protected final double _parseDoublePrimitive(com.fasterxml.jackson.core.JsonParser jp, DeserializationContext ctxt) throws java.io.IOException
java.io.IOException
protected java.util.Date _parseDate(com.fasterxml.jackson.core.JsonParser p, DeserializationContext ctxt) throws java.io.IOException
java.io.IOException
protected static final double parseDouble(java.lang.String numStr) throws java.lang.NumberFormatException
java.lang.NumberFormatException
protected final java.lang.String _parseString(com.fasterxml.jackson.core.JsonParser p, DeserializationContext ctxt) throws java.io.IOException
java.io.IOException
protected T _deserializeFromEmpty(com.fasterxml.jackson.core.JsonParser jp, DeserializationContext ctxt) throws java.io.IOException
java.io.IOException
protected boolean _hasTextualNull(java.lang.String value)
protected final boolean _isNegInf(java.lang.String text)
protected final boolean _isPosInf(java.lang.String text)
protected final boolean _isNaN(java.lang.String text)
protected java.lang.Object _coerceIntegral(com.fasterxml.jackson.core.JsonParser p, DeserializationContext ctxt) throws java.io.IOException
Number
into "bigger" type like Long
or
BigInteger
java.io.IOException
DeserializationFeature.USE_BIG_INTEGER_FOR_INTS
,
DeserializationFeature.USE_LONG_FOR_INTS
protected JsonDeserializer<java.lang.Object> findDeserializer(DeserializationContext ctxt, JavaType type, BeanProperty property) throws JsonMappingException
type
- Type of property to deserializeproperty
- Actual property object (field, method, constuctor parameter) used
for passing deserialized values; provided so deserializer can be contextualized if necessaryJsonMappingException
protected final boolean _isIntNumber(java.lang.String text)
protected JsonDeserializer<?> findConvertingContentDeserializer(DeserializationContext ctxt, BeanProperty prop, JsonDeserializer<?> existingDeserializer) throws JsonMappingException
existingDeserializer
- (optional) configured content
serializer if one already exists.JsonMappingException
protected com.fasterxml.jackson.annotation.JsonFormat.Value findFormatOverrides(DeserializationContext ctxt, BeanProperty prop, java.lang.Class<?> typeForDefaults)
JsonFormat
settings, either via property, or through type-specific
defaulting.typeForDefaults
- Type (erased) used for finding default format settings, if anyprotected java.lang.Boolean findFormatFeature(DeserializationContext ctxt, BeanProperty prop, java.lang.Class<?> typeForDefaults, com.fasterxml.jackson.annotation.JsonFormat.Feature feat)
findFormatOverrides(com.fasterxml.jackson.databind.DeserializationContext, com.fasterxml.jackson.databind.BeanProperty, java.lang.Class<?>)
to find possible
defaults and/of overrides, and then calls
JsonFormat.Value.getFeature(feat)
to find whether that feature has been specifically marked as enabled or disabled.typeForDefaults
- Type (erased) used for finding default format settings, if anyprotected void handleUnknownProperty(com.fasterxml.jackson.core.JsonParser jp, DeserializationContext ctxt, java.lang.Object instanceOrClass, java.lang.String propName) throws java.io.IOException
NOTE: method signature was changed in version 1.5; explicit JsonParser must be passed since it may be something other than what context has. Prior versions did not include the first parameter.
jp
- Parser that points to value of the unknown propertyctxt
- Context for deserialization; allows access to the parser,
error reporting functionalityinstanceOrClass
- Instance that is being populated by this
deserializer, or if not known, Class that would be instantiated.
If null, will assume type is what getValueClass()
returns.propName
- Name of the property that can not be mappedjava.io.IOException
protected void _failDoubleToIntCoercion(com.fasterxml.jackson.core.JsonParser jp, DeserializationContext ctxt, java.lang.String type) throws java.io.IOException
java.io.IOException