public class EnumDeserializer extends com.fasterxml.jackson.databind.deser.std.StdScalarDeserializer<Object> implements com.fasterxml.jackson.databind.deser.ContextualDeserializer
我重写了后,增强了以下功能。 1、传递的枚举类型可以是对象. 如: sex: { "code": "M" }
本类跟jackson-databind包中的EnumDeserializer类同包名,利用类加载机制,会加载此类,不会加载到jackson-databind中的类 参考 BasicDeserializerFactory#1495 行代码
| 限定符和类型 | 字段和说明 |
|---|---|
protected Boolean |
_caseInsensitive |
protected Object[] |
_enumsByIndex |
protected com.fasterxml.jackson.databind.util.CompactStringObjectMap |
_lookupByName |
protected com.fasterxml.jackson.databind.util.CompactStringObjectMap |
_lookupByToString
Alternatively, we may need a different lookup object if "use toString"
is defined.
|
| 限定符 | 构造器和说明 |
|---|---|
protected |
EnumDeserializer(EnumDeserializer base,
Boolean caseInsensitive) |
|
EnumDeserializer(com.fasterxml.jackson.databind.util.EnumResolver byNameResolver)
已过时。
Since 2.9
|
|
EnumDeserializer(com.fasterxml.jackson.databind.util.EnumResolver byNameResolver,
Boolean caseInsensitive) |
| 限定符和类型 | 方法和说明 |
|---|---|
protected Object |
_deserializeOther(com.fasterxml.jackson.core.JsonParser p,
com.fasterxml.jackson.databind.DeserializationContext ctxt) |
protected Class<?> |
_enumClass() |
protected Object |
_fromInteger(com.fasterxml.jackson.core.JsonParser p,
com.fasterxml.jackson.databind.DeserializationContext ctxt,
int index) |
protected Object |
_fromString(com.fasterxml.jackson.core.JsonParser p,
com.fasterxml.jackson.databind.DeserializationContext ctxt,
String text) |
protected com.fasterxml.jackson.databind.util.CompactStringObjectMap |
_getToStringLookup(com.fasterxml.jackson.databind.DeserializationContext ctxt) |
com.fasterxml.jackson.databind.JsonDeserializer<?> |
createContextual(com.fasterxml.jackson.databind.DeserializationContext ctxt,
com.fasterxml.jackson.databind.BeanProperty property) |
Object |
deserialize(com.fasterxml.jackson.core.JsonParser p,
com.fasterxml.jackson.databind.DeserializationContext ctxt) |
static com.fasterxml.jackson.databind.JsonDeserializer<?> |
deserializerForCreator(com.fasterxml.jackson.databind.DeserializationConfig config,
Class<?> enumClass,
com.fasterxml.jackson.databind.introspect.AnnotatedMethod factory)
已过时。
Since 2.8
|
static com.fasterxml.jackson.databind.JsonDeserializer<?> |
deserializerForCreator(com.fasterxml.jackson.databind.DeserializationConfig config,
Class<?> enumClass,
com.fasterxml.jackson.databind.introspect.AnnotatedMethod factory,
com.fasterxml.jackson.databind.deser.ValueInstantiator valueInstantiator,
com.fasterxml.jackson.databind.deser.SettableBeanProperty[] creatorProps)
Factory method used when Enum instances are to be deserialized
using a creator (static factory method)
|
static com.fasterxml.jackson.databind.JsonDeserializer<?> |
deserializerForNoArgsCreator(com.fasterxml.jackson.databind.DeserializationConfig config,
Class<?> enumClass,
com.fasterxml.jackson.databind.introspect.AnnotatedMethod factory)
Factory method used when Enum instances are to be deserialized
using a zero-/no-args factory method
|
Object |
getEmptyValue(com.fasterxml.jackson.databind.DeserializationContext ctxt) |
boolean |
isCachable()
Because of costs associated with constructing Enum resolvers,
let's cache instances by default.
|
com.fasterxml.jackson.databind.type.LogicalType |
logicalType() |
EnumDeserializer |
withResolved(Boolean caseInsensitive) |
deserialize, deserializeWithType, getEmptyAccessPattern, getNullAccessPattern, supportsUpdate_byteOverflow, _checkCoercionFail, _checkDoubleSpecialValue, _checkFloatSpecialValue, _checkFloatToIntCoercion, _checkFromStringCoercion, _checkFromStringCoercion, _checkTextualNull, _coerceBooleanFromInt, _coercedTypeDesc, _coerceEmptyString, _coerceIntegral, _coerceNullToken, _coerceTextualNull, _deserializeFromArray, _deserializeFromEmpty, _deserializeFromEmptyString, _deserializeFromString, _deserializeWrappedValue, _failDoubleToIntCoercion, _findCoercionFromBlankString, _findCoercionFromEmptyArray, _findCoercionFromEmptyString, _findNullProvider, _hasTextualNull, _intOverflow, _isBlank, _isEmptyOrTextualNull, _isFalse, _isIntNumber, _isNaN, _isNegInf, _isPosInf, _isTrue, _neitherNull, _nonNullNumber, _parseBoolean, _parseBooleanFromInt, _parseBooleanPrimitive, _parseBooleanPrimitive, _parseBytePrimitive, _parseDate, _parseDate, _parseDateFromArray, _parseDouble, _parseDoublePrimitive, _parseDoublePrimitive, _parseFloatPrimitive, _parseFloatPrimitive, _parseInteger, _parseInteger, _parseIntPrimitive, _parseIntPrimitive, _parseLong, _parseLong, _parseLongPrimitive, _parseLongPrimitive, _parseShortPrimitive, _parseString, _reportFailedNullCoerce, _shortOverflow, _verifyEndArrayForSingle, _verifyNullForPrimitive, _verifyNullForPrimitiveCoercion, _verifyNullForScalarCoercion, _verifyNumberForScalarCoercion, _verifyStringForScalarCoercion, findContentNullProvider, findContentNullStyle, findConvertingContentDeserializer, findDeserializer, findFormatFeature, findFormatOverrides, findValueNullProvider, getValueClass, getValueInstantiator, getValueType, getValueType, handledType, handleMissingEndArrayForSingle, handleNestedArrayForSingle, handleUnknownProperty, isDefaultDeserializer, isDefaultKeyDeserializerprotected final com.fasterxml.jackson.databind.util.CompactStringObjectMap _lookupByName
protected final Boolean _caseInsensitive
protected Object[] _enumsByIndex
protected com.fasterxml.jackson.databind.util.CompactStringObjectMap _lookupByToString
public EnumDeserializer(com.fasterxml.jackson.databind.util.EnumResolver byNameResolver,
Boolean caseInsensitive)
protected EnumDeserializer(EnumDeserializer base, Boolean caseInsensitive)
@Deprecated public EnumDeserializer(com.fasterxml.jackson.databind.util.EnumResolver byNameResolver)
@Deprecated public static com.fasterxml.jackson.databind.JsonDeserializer<?> deserializerForCreator(com.fasterxml.jackson.databind.DeserializationConfig config, Class<?> enumClass, com.fasterxml.jackson.databind.introspect.AnnotatedMethod factory)
public static com.fasterxml.jackson.databind.JsonDeserializer<?> deserializerForCreator(com.fasterxml.jackson.databind.DeserializationConfig config,
Class<?> enumClass,
com.fasterxml.jackson.databind.introspect.AnnotatedMethod factory,
com.fasterxml.jackson.databind.deser.ValueInstantiator valueInstantiator,
com.fasterxml.jackson.databind.deser.SettableBeanProperty[] creatorProps)
public static com.fasterxml.jackson.databind.JsonDeserializer<?> deserializerForNoArgsCreator(com.fasterxml.jackson.databind.DeserializationConfig config,
Class<?> enumClass,
com.fasterxml.jackson.databind.introspect.AnnotatedMethod factory)
public EnumDeserializer withResolved(Boolean caseInsensitive)
public com.fasterxml.jackson.databind.JsonDeserializer<?> createContextual(com.fasterxml.jackson.databind.DeserializationContext ctxt,
com.fasterxml.jackson.databind.BeanProperty property)
throws com.fasterxml.jackson.databind.JsonMappingException
createContextual 在接口中 com.fasterxml.jackson.databind.deser.ContextualDeserializercom.fasterxml.jackson.databind.JsonMappingExceptionpublic boolean isCachable()
isCachable 在类中 com.fasterxml.jackson.databind.JsonDeserializer<Object>public com.fasterxml.jackson.databind.type.LogicalType logicalType()
logicalType 在类中 com.fasterxml.jackson.databind.deser.std.StdScalarDeserializer<Object>public Object getEmptyValue(com.fasterxml.jackson.databind.DeserializationContext ctxt) throws com.fasterxml.jackson.databind.JsonMappingException
getEmptyValue 在类中 com.fasterxml.jackson.databind.JsonDeserializer<Object>com.fasterxml.jackson.databind.JsonMappingExceptionpublic Object deserialize(com.fasterxml.jackson.core.JsonParser p, com.fasterxml.jackson.databind.DeserializationContext ctxt) throws IOException
deserialize 在类中 com.fasterxml.jackson.databind.JsonDeserializer<Object>IOExceptionprotected Object _fromString(com.fasterxml.jackson.core.JsonParser p, com.fasterxml.jackson.databind.DeserializationContext ctxt, String text) throws IOException
IOExceptionprotected Object _fromInteger(com.fasterxml.jackson.core.JsonParser p, com.fasterxml.jackson.databind.DeserializationContext ctxt, int index) throws IOException
IOExceptionprotected Object _deserializeOther(com.fasterxml.jackson.core.JsonParser p, com.fasterxml.jackson.databind.DeserializationContext ctxt) throws IOException
IOExceptionprotected Class<?> _enumClass()
protected com.fasterxml.jackson.databind.util.CompactStringObjectMap _getToStringLookup(com.fasterxml.jackson.databind.DeserializationContext ctxt)
Copyright © 2022. All rights reserved.