Top Description Inners Fields Constructors Methods
com.fasterxml.jackson.databind.deser.std

public Class StdKeyDeserializer

extends KeyDeserializer
implements Serializable
Class Inheritance
All Implemented Interfaces
java.io.Serializable
Known Direct Subclasses
com.fasterxml.jackson.databind.deser.std.StdKeyDeserializer.StringKD, com.fasterxml.jackson.databind.deser.std.StdKeyDeserializer.EnumKD, com.fasterxml.jackson.databind.deser.std.StdKeyDeserializer.StringCtorKeyDeserializer, com.fasterxml.jackson.databind.deser.std.StdKeyDeserializer.StringFactoryKeyDeserializer
Annotations
@JacksonStdImpl
Imports
java.io.IOException, .Serializable, java.lang.reflect.Constructor, .Method, java.net.MalformedURLException, .URI, .URL, java.util.*, com.fasterxml.jackson.core.JsonParser, com.fasterxml.jackson.core.io.NumberInput, com.fasterxml.jackson.databind.*, com.fasterxml.jackson.databind.annotation.JacksonStdImpl, com.fasterxml.jackson.databind.cfg.EnumFeature, com.fasterxml.jackson.databind.introspect.AnnotatedMethod, com.fasterxml.jackson.databind.util.ClassUtil, .EnumResolver, .TokenBuffer

Default KeyDeserializer implementation used for most java.util.Map types Jackson supports. Implemented as "chameleon" (or swiss pocket knife) class; not particularly elegant, but helps reduce number of classes and jar size (class metadata adds significant per-class overhead; much more than bytecode).

Nested and Inner Type Summary

Modifier and TypeClass and Description
pack-priv static class
StdKeyDeserializer.DelegatingKD

Key deserializer that wraps a "regular" deserializer (but one that must recognize FIELD_NAMEs as text!) to reuse existing handlers as key handlers.

pack-priv static class
pack-priv static class
StdKeyDeserializer.StringCtorKeyDeserializer

Key deserializer that calls a single-string-arg constructor to instantiate desired key type.

pack-priv static class
StdKeyDeserializer.StringFactoryKeyDeserializer

Key deserializer that calls a static no-args factory method to instantiate desired key type.

pack-priv static class

Field Summary

Modifier and TypeField and Description
protected final FromStringDeserializer<?>
_deser

Some types that are deserialized using a helper deserializer.

protected final Class<?>
protected final int
private static final long
public static final int
public static final int
public static final int
public static final int
public static final int
public static final int
public static final int
public static final int
public static final int
public static final int
public static final int
public static final int
public static final int
public static final int
public static final int
public static final int
public static final int

Constructor Summary

AccessConstructor and Description
protected
StdKeyDeserializer(int kind, Class<?> cls)

protected
StdKeyDeserializer(int kind, Class<?> cls, FromStringDeserializer<?> deser)

Method Summary

Modifier and TypeMethod and Description
protected Object
protected double
protected int
protected long
protected Object
public Object
deserializeKey(String key, DeserializationContext ctxt)

Implements abstract com.fasterxml.jackson.databind.KeyDeserializer.deserializeKey.

Method called to deserialize a java.util.Map key from JSON property name.

public static StdKeyDeserializer
forType(Class<?> raw)

public Class<?>

Field Detail

_deserback to summary
protected final FromStringDeserializer<?> _deser

Some types that are deserialized using a helper deserializer.

_keyClassback to summary
protected final Class<?> _keyClass
_kindback to summary
protected final int _kind
serialVersionUIDback to summary
private static final long serialVersionUID
TYPE_BOOLEANback to summary
public static final int TYPE_BOOLEAN
TYPE_BYTEback to summary
public static final int TYPE_BYTE
TYPE_BYTE_ARRAYback to summary
public static final int TYPE_BYTE_ARRAY
TYPE_CALENDARback to summary
public static final int TYPE_CALENDAR
TYPE_CHARback to summary
public static final int TYPE_CHAR
TYPE_CLASSback to summary
public static final int TYPE_CLASS
TYPE_CURRENCYback to summary
public static final int TYPE_CURRENCY
TYPE_DATEback to summary
public static final int TYPE_DATE
TYPE_DOUBLEback to summary
public static final int TYPE_DOUBLE
TYPE_FLOATback to summary
public static final int TYPE_FLOAT
TYPE_INTback to summary
public static final int TYPE_INT
TYPE_LOCALEback to summary
public static final int TYPE_LOCALE
TYPE_LONGback to summary
public static final int TYPE_LONG
TYPE_SHORTback to summary
public static final int TYPE_SHORT
TYPE_URIback to summary
public static final int TYPE_URI
TYPE_URLback to summary
public static final int TYPE_URL
TYPE_UUIDback to summary
public static final int TYPE_UUID

Constructor Detail

StdKeyDeserializerback to summary
protected StdKeyDeserializer(int kind, Class<?> cls)
StdKeyDeserializerback to summary
protected StdKeyDeserializer(int kind, Class<?> cls, FromStringDeserializer<?> deser)

Method Detail

_parseback to summary
protected Object _parse(String key, DeserializationContext ctxt) throws Exception
_parseDoubleback to summary
protected double _parseDouble(String key) throws IllegalArgumentException
_parseIntback to summary
protected int _parseInt(String key) throws IllegalArgumentException
_parseLongback to summary
protected long _parseLong(String key) throws IllegalArgumentException
_weirdKeyback to summary
protected Object _weirdKey(DeserializationContext ctxt, String key, Exception e) throws IOException
deserializeKeyback to summary
public Object deserializeKey(String key, DeserializationContext ctxt) throws IOException

Implements abstract com.fasterxml.jackson.databind.KeyDeserializer.deserializeKey.

Doc from com.fasterxml.jackson.databind.KeyDeserializer.deserializeKey.

Method called to deserialize a java.util.Map key from JSON property name.

Annotations
@Override
forTypeback to summary
public static StdKeyDeserializer forType(Class<?> raw)
getKeyClassback to summary
public Class<?> getKeyClass()
com.fasterxml.jackson.databind.deser.std back to summary

pack-priv final Class StdKeyDeserializer.DelegatingKD

extends KeyDeserializer
implements Serializable
Class Inheritance
All Implemented Interfaces
java.io.Serializable

Key deserializer that wraps a "regular" deserializer (but one that must recognize FIELD_NAMEs as text!) to reuse existing handlers as key handlers.

Field Summary

Modifier and TypeField and Description
protected final JsonDeserializer<?>
protected final Class<?>
private static final long

Constructor Summary

AccessConstructor and Description
protected

Method Summary

Modifier and TypeMethod and Description
public final Object
deserializeKey(String key, DeserializationContext ctxt)

Implements abstract com.fasterxml.jackson.databind.KeyDeserializer.deserializeKey.

Method called to deserialize a java.util.Map key from JSON property name.

public Class<?>

Field Detail

_delegateback to summary
protected final JsonDeserializer<?> _delegate
_keyClassback to summary
protected final Class<?> _keyClass
serialVersionUIDback to summary
private static final long serialVersionUID

Constructor Detail

DelegatingKDback to summary
protected DelegatingKD(Class<?> cls, JsonDeserializer<?> deser)

Method Detail

deserializeKeyback to summary
public final Object deserializeKey(String key, DeserializationContext ctxt) throws IOException

Implements abstract com.fasterxml.jackson.databind.KeyDeserializer.deserializeKey.

Doc from com.fasterxml.jackson.databind.KeyDeserializer.deserializeKey.

Method called to deserialize a java.util.Map key from JSON property name.

Annotations
@SuppressWarnings:resource
@Override
getKeyClassback to summary
public Class<?> getKeyClass()
com.fasterxml.jackson.databind.deser.std back to summary

pack-priv final Class StdKeyDeserializer.EnumKD

extends StdKeyDeserializer
Class Inheritance
Annotations
@JacksonStdImpl

Field Summary

Modifier and TypeField and Description
protected final EnumResolver
_byEnumNamingResolver

Look up map with key as Enum.name() converted by EnumNamingStrategy#convertEnumToExternalName(String) and value as Enums.

protected volatile EnumResolver
_byIndexResolver

Lazily constructed alternative in case there is need to parse using enum index method as the source.

protected final EnumResolver
protected volatile EnumResolver
_byToStringResolver

Lazily constructed alternative in case there is need to use 'toString()' method as the source.

protected final Enum<?>
protected final AnnotatedMethod
private static final long
Inherited from com.fasterxml.jackson.databind.deser.std.StdKeyDeserializer:
_deser_keyClass_kindTYPE_BOOLEANTYPE_BYTETYPE_BYTE_ARRAYTYPE_CALENDARTYPE_CHARTYPE_CLASSTYPE_CURRENCYTYPE_DATETYPE_DOUBLETYPE_FLOATTYPE_INTTYPE_LOCALETYPE_LONGTYPE_SHORTTYPE_URITYPE_URLTYPE_UUID

Constructor Summary

AccessConstructor and Description
protected
protected
EnumKD(EnumResolver er, AnnotatedMethod factory, EnumResolver byEnumNamingResolver, EnumResolver byToStringResolver, EnumResolver byIndexResolver)

Method Summary

Modifier and TypeMethod and Description
private EnumResolver
_getIndexResolver(DeserializationContext ctxt)
Deprecated Since 2.16

Since 2.16, _byIndexResolver it is passed via EnumKD(EnumResolver, AnnotatedMethod, EnumResolver, EnumResolver, EnumResolver), so there is no need for lazy initialization.

private EnumResolver
_getToStringResolver(DeserializationContext ctxt)
Deprecated Since 2.16

Since 2.16, _byToStringResolver it is passed via EnumKD(EnumResolver, AnnotatedMethod, EnumResolver, EnumResolver, EnumResolver), so there is no need for lazy initialization.

public Object
protected EnumResolver
Inherited from com.fasterxml.jackson.databind.deser.std.StdKeyDeserializer:
_parseDouble_parseInt_parseLong_weirdKeydeserializeKeyforTypegetKeyClass

Field Detail

_byEnumNamingResolverback to summary
protected final EnumResolver _byEnumNamingResolver

Look up map with key as Enum.name() converted by EnumNamingStrategy#convertEnumToExternalName(String) and value as Enums.

Since
2.15
_byIndexResolverback to summary
protected volatile EnumResolver _byIndexResolver

Lazily constructed alternative in case there is need to parse using enum index method as the source.

Since
2.15
_byNameResolverback to summary
protected final EnumResolver _byNameResolver
_byToStringResolverback to summary
protected volatile EnumResolver _byToStringResolver

Lazily constructed alternative in case there is need to use 'toString()' method as the source.

Note

this will be final in Jackson 3.x, by removing deprecated _getToStringResolver(DeserializationContext)

Since
2.7.3
_enumDefaultValueback to summary
protected final Enum<?> _enumDefaultValue
_factoryback to summary
protected final AnnotatedMethod _factory
serialVersionUIDback to summary
private static final long serialVersionUID

Hides com.fasterxml.jackson.databind.deser.std.StdKeyDeserializer.serialVersionUID.

Constructor Detail

EnumKDback to summary
protected EnumKD(EnumResolver er, AnnotatedMethod factory)
EnumKDback to summary
protected EnumKD(EnumResolver er, AnnotatedMethod factory, EnumResolver byEnumNamingResolver, EnumResolver byToStringResolver, EnumResolver byIndexResolver)
Since
2.16

Method Detail

_getIndexResolverback to summary
private EnumResolver _getIndexResolver(DeserializationContext ctxt)

Deprecated

Since 2.16

Since 2.16, _byIndexResolver it is passed via EnumKD(EnumResolver, AnnotatedMethod, EnumResolver, EnumResolver, EnumResolver), so there is no need for lazy initialization. But kept for backward-compatilibility reasons.

Annotations
@Deprecated
_getToStringResolverback to summary
private EnumResolver _getToStringResolver(DeserializationContext ctxt)

Deprecated

Since 2.16

Since 2.16, _byToStringResolver it is passed via EnumKD(EnumResolver, AnnotatedMethod, EnumResolver, EnumResolver, EnumResolver), so there is no need for lazy initialization. But kept for backward-compatilibility reasons.

Annotations
@Deprecated
_parseback to summary
public Object _parse(String key, DeserializationContext ctxt) throws IOException

Overrides com.fasterxml.jackson.databind.deser.std.StdKeyDeserializer._parse.

Annotations
@Override
_resolveCurrentResolverback to summary
protected EnumResolver _resolveCurrentResolver(DeserializationContext ctxt)
Since
2.15
com.fasterxml.jackson.databind.deser.std back to summary

pack-priv final Class StdKeyDeserializer.StringCtorKeyDeserializer

extends StdKeyDeserializer
Class Inheritance

Key deserializer that calls a single-string-arg constructor to instantiate desired key type.

Field Summary

Modifier and TypeField and Description
protected final Constructor<?>
private static final long
Inherited from com.fasterxml.jackson.databind.deser.std.StdKeyDeserializer:
_deser_keyClass_kindTYPE_BOOLEANTYPE_BYTETYPE_BYTE_ARRAYTYPE_CALENDARTYPE_CHARTYPE_CLASSTYPE_CURRENCYTYPE_DATETYPE_DOUBLETYPE_FLOATTYPE_INTTYPE_LOCALETYPE_LONGTYPE_SHORTTYPE_URITYPE_URLTYPE_UUID

Constructor Summary

AccessConstructor and Description
public

Method Summary

Modifier and TypeMethod and Description
public Object
Inherited from com.fasterxml.jackson.databind.deser.std.StdKeyDeserializer:
_parseDouble_parseInt_parseLong_weirdKeydeserializeKeyforTypegetKeyClass

Field Detail

_ctorback to summary
protected final Constructor<?> _ctor
serialVersionUIDback to summary
private static final long serialVersionUID

Hides com.fasterxml.jackson.databind.deser.std.StdKeyDeserializer.serialVersionUID.

Constructor Detail

StringCtorKeyDeserializerback to summary
public StringCtorKeyDeserializer(Constructor<?> ctor)

Method Detail

_parseback to summary
public Object _parse(String key, DeserializationContext ctxt) throws Exception

Overrides com.fasterxml.jackson.databind.deser.std.StdKeyDeserializer._parse.

Annotations
@Override
com.fasterxml.jackson.databind.deser.std back to summary

pack-priv final Class StdKeyDeserializer.StringFactoryKeyDeserializer

extends StdKeyDeserializer
Class Inheritance

Key deserializer that calls a static no-args factory method to instantiate desired key type.

Field Summary

Modifier and TypeField and Description
pack-priv final Method
private static final long
Inherited from com.fasterxml.jackson.databind.deser.std.StdKeyDeserializer:
_deser_keyClass_kindTYPE_BOOLEANTYPE_BYTETYPE_BYTE_ARRAYTYPE_CALENDARTYPE_CHARTYPE_CLASSTYPE_CURRENCYTYPE_DATETYPE_DOUBLETYPE_FLOATTYPE_INTTYPE_LOCALETYPE_LONGTYPE_SHORTTYPE_URITYPE_URLTYPE_UUID

Constructor Summary

AccessConstructor and Description
public

Method Summary

Modifier and TypeMethod and Description
public Object
Inherited from com.fasterxml.jackson.databind.deser.std.StdKeyDeserializer:
_parseDouble_parseInt_parseLong_weirdKeydeserializeKeyforTypegetKeyClass

Field Detail

_factoryMethodback to summary
pack-priv final Method _factoryMethod
serialVersionUIDback to summary
private static final long serialVersionUID

Hides com.fasterxml.jackson.databind.deser.std.StdKeyDeserializer.serialVersionUID.

Constructor Detail

StringFactoryKeyDeserializerback to summary
public StringFactoryKeyDeserializer(Method fm)

Method Detail

_parseback to summary
public Object _parse(String key, DeserializationContext ctxt) throws Exception

Overrides com.fasterxml.jackson.databind.deser.std.StdKeyDeserializer._parse.

Annotations
@Override
com.fasterxml.jackson.databind.deser.std back to summary

pack-priv final Class StdKeyDeserializer.StringKD

extends StdKeyDeserializer
Class Inheritance
Annotations
@JacksonStdImpl

Field Summary

Modifier and TypeField and Description
private static final long
private static final StdKeyDeserializer.StringKD
private static final StdKeyDeserializer.StringKD
Inherited from com.fasterxml.jackson.databind.deser.std.StdKeyDeserializer:
_deser_keyClass_kindTYPE_BOOLEANTYPE_BYTETYPE_BYTE_ARRAYTYPE_CALENDARTYPE_CHARTYPE_CLASSTYPE_CURRENCYTYPE_DATETYPE_DOUBLETYPE_FLOATTYPE_INTTYPE_LOCALETYPE_LONGTYPE_SHORTTYPE_URITYPE_URLTYPE_UUID

Constructor Summary

AccessConstructor and Description
private
StringKD(Class<?> nominalType)

Method Summary

Modifier and TypeMethod and Description
public Object
deserializeKey(String key, DeserializationContext ctxt)

Overrides com.fasterxml.jackson.databind.deser.std.StdKeyDeserializer.deserializeKey.

Method called to deserialize a java.util.Map key from JSON property name.

public static StdKeyDeserializer.StringKD
Inherited from com.fasterxml.jackson.databind.deser.std.StdKeyDeserializer:
_parse_parseDouble_parseInt_parseLong_weirdKeygetKeyClass

Field Detail

serialVersionUIDback to summary
private static final long serialVersionUID

Hides com.fasterxml.jackson.databind.deser.std.StdKeyDeserializer.serialVersionUID.

sObjectback to summary
private static final StdKeyDeserializer.StringKD sObject
sStringback to summary
private static final StdKeyDeserializer.StringKD sString

Constructor Detail

StringKDback to summary
private StringKD(Class<?> nominalType)

Method Detail

deserializeKeyback to summary
public Object deserializeKey(String key, DeserializationContext ctxt) throws IOException

Overrides com.fasterxml.jackson.databind.deser.std.StdKeyDeserializer.deserializeKey.

Doc from com.fasterxml.jackson.databind.KeyDeserializer.deserializeKey.

Method called to deserialize a java.util.Map key from JSON property name.

Annotations
@Override
forTypeback to summary
public static StdKeyDeserializer.StringKD forType(Class<?> nominalType)

Hides com.fasterxml.jackson.databind.deser.std.StdKeyDeserializer.forType.