public class StdKeyDeserializer extends KeyDeserializer implements java.io.Serializable
KeyDeserializer
implementation used for most 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).Modifier and Type | Class and Description |
---|---|
(package private) 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.
|
(package private) static class |
StdKeyDeserializer.EnumKD |
(package private) static class |
StdKeyDeserializer.StringCtorKeyDeserializer
Key deserializer that calls a single-string-arg constructor
to instantiate desired key type.
|
(package private) static class |
StdKeyDeserializer.StringFactoryKeyDeserializer
Key deserializer that calls a static no-args factory method
to instantiate desired key type.
|
(package private) static class |
StdKeyDeserializer.StringKD |
KeyDeserializer.None
Modifier and Type | Field and Description |
---|---|
protected FromStringDeserializer<?> |
_deser
Some types that are deserialized using a helper deserializer.
|
protected java.lang.Class<?> |
_keyClass |
protected int |
_kind |
private static long |
serialVersionUID |
static int |
TYPE_BOOLEAN |
static int |
TYPE_BYTE |
static int |
TYPE_CALENDAR |
static int |
TYPE_CHAR |
static int |
TYPE_CLASS |
static int |
TYPE_CURRENCY |
static int |
TYPE_DATE |
static int |
TYPE_DOUBLE |
static int |
TYPE_FLOAT |
static int |
TYPE_INT |
static int |
TYPE_LOCALE |
static int |
TYPE_LONG |
static int |
TYPE_SHORT |
static int |
TYPE_URI |
static int |
TYPE_URL |
static int |
TYPE_UUID |
Modifier | Constructor and Description |
---|---|
protected |
StdKeyDeserializer(int kind,
java.lang.Class<?> cls) |
protected |
StdKeyDeserializer(int kind,
java.lang.Class<?> cls,
FromStringDeserializer<?> deser) |
Modifier and Type | Method and Description |
---|---|
protected java.lang.Object |
_parse(java.lang.String key,
DeserializationContext ctxt) |
protected double |
_parseDouble(java.lang.String key) |
protected int |
_parseInt(java.lang.String key) |
protected long |
_parseLong(java.lang.String key) |
java.lang.Object |
deserializeKey(java.lang.String key,
DeserializationContext ctxt)
Method called to deserialize a
Map key from JSON property name. |
static StdKeyDeserializer |
forType(java.lang.Class<?> raw) |
java.lang.Class<?> |
getKeyClass() |
private static final long serialVersionUID
public static final int TYPE_BOOLEAN
public static final int TYPE_BYTE
public static final int TYPE_SHORT
public static final int TYPE_CHAR
public static final int TYPE_INT
public static final int TYPE_LONG
public static final int TYPE_FLOAT
public static final int TYPE_DOUBLE
public static final int TYPE_LOCALE
public static final int TYPE_DATE
public static final int TYPE_CALENDAR
public static final int TYPE_UUID
public static final int TYPE_URI
public static final int TYPE_URL
public static final int TYPE_CLASS
public static final int TYPE_CURRENCY
protected final int _kind
protected final java.lang.Class<?> _keyClass
protected final FromStringDeserializer<?> _deser
protected StdKeyDeserializer(int kind, java.lang.Class<?> cls)
protected StdKeyDeserializer(int kind, java.lang.Class<?> cls, FromStringDeserializer<?> deser)
public static StdKeyDeserializer forType(java.lang.Class<?> raw)
public java.lang.Object deserializeKey(java.lang.String key, DeserializationContext ctxt) throws java.io.IOException
KeyDeserializer
Map
key from JSON property name.deserializeKey
in class KeyDeserializer
java.io.IOException
public java.lang.Class<?> getKeyClass()
protected java.lang.Object _parse(java.lang.String key, DeserializationContext ctxt) throws java.lang.Exception
java.lang.Exception
protected int _parseInt(java.lang.String key) throws java.lang.IllegalArgumentException
java.lang.IllegalArgumentException
protected long _parseLong(java.lang.String key) throws java.lang.IllegalArgumentException
java.lang.IllegalArgumentException
protected double _parseDouble(java.lang.String key) throws java.lang.IllegalArgumentException
java.lang.IllegalArgumentException