Class PropertyTypedObjectDeserializer

  • All Implemented Interfaces:
    com.fasterxml.jackson.databind.deser.ContextualDeserializer, com.fasterxml.jackson.databind.deser.NullValueProvider, com.fasterxml.jackson.databind.deser.ResolvableDeserializer, com.fasterxml.jackson.databind.deser.ValueInstantiator.Gettable, Serializable

    public class PropertyTypedObjectDeserializer
    extends com.fasterxml.jackson.databind.deser.std.UntypedObjectDeserializer
    This Jackson deserializer makes it possible to register field matching regular expressions that can be matched to class names, as in the following example: SimpleModule deserializerModule = new SimpleModule("PropertyTypedObjectDeserializerModule", new Version(1, 0, 0, null, "org.apache.unomi.rest", "deserializer")); PropertyTypedObjectDeserializer propertyTypedObjectDeserializer = new PropertyTypedObjectDeserializer(null, null); propertyTypedObjectDeserializer.registerMapping("type=.*Condition", Condition.class); deserializerModule.addDeserializer(Object.class, propertyTypedObjectDeserializer); objectMapper.registerModule(deserializerModule); In this example any JSON object that has a "type" property that matches the ".*Condition" regular expression will be parsed and mapped to a Condition class Note that there exists a way to map properties as type identifiers in Jackson, but this feature is very limited and requires hardcoding possible values. This deserializer is much more flexible and powerful.
    See Also:
    Serialized Form
    • Nested Class Summary

      • Nested classes/interfaces inherited from class com.fasterxml.jackson.databind.deser.std.UntypedObjectDeserializer

        com.fasterxml.jackson.databind.deser.std.UntypedObjectDeserializer.Vanilla
      • Nested classes/interfaces inherited from class com.fasterxml.jackson.databind.JsonDeserializer

        com.fasterxml.jackson.databind.JsonDeserializer.None
    • Field Summary

      • Fields inherited from class com.fasterxml.jackson.databind.deser.std.UntypedObjectDeserializer

        _listDeserializer, _listType, _mapDeserializer, _mapType, _nonMerging, _numberDeserializer, _stringDeserializer, NO_OBJECTS
      • Fields inherited from class com.fasterxml.jackson.databind.deser.std.StdDeserializer

        _valueClass, _valueType, F_MASK_ACCEPT_ARRAYS, F_MASK_INT_COERCIONS
    • Constructor Summary

      Constructors 
      Constructor Description
      PropertyTypedObjectDeserializer​(com.fasterxml.jackson.databind.JavaType listType, com.fasterxml.jackson.databind.JavaType mapType)  
    • Method Summary

      All Methods Instance Methods Concrete Methods 
      Modifier and Type Method Description
      Object deserialize​(com.fasterxml.jackson.core.JsonParser jp, com.fasterxml.jackson.databind.DeserializationContext ctxt)  
      void registerMapping​(String matchExpression, Class<? extends Object> mappedClass)  
      void unregisterMapping​(String matchExpression)  
      • Methods inherited from class com.fasterxml.jackson.databind.deser.std.UntypedObjectDeserializer

        _clearIfStdImpl, _findCustomDeser, _mapObjectWithDups, createContextual, deserialize, deserializeWithType, isCachable, logicalType, mapArray, mapArray, mapArrayToArray, mapObject, mapObject, resolve, supportsUpdate
      • Methods inherited from class com.fasterxml.jackson.databind.deser.std.StdDeserializer

        _byteOverflow, _checkBooleanToStringCoercion, _checkCoercionFail, _checkDoubleSpecialValue, _checkFloatSpecialValue, _checkFloatToIntCoercion, _checkFloatToStringCoercion, _checkFromStringCoercion, _checkFromStringCoercion, _checkIntToFloatCoercion, _checkIntToStringCoercion, _checkTextualNull, _checkToStringCoercion, _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, _parseDouble, _parseDoublePrimitive, _parseDoublePrimitive, _parseDoublePrimitive, _parseFloatPrimitive, _parseFloatPrimitive, _parseFloatPrimitive, _parseInteger, _parseInteger, _parseIntPrimitive, _parseIntPrimitive, _parseLong, _parseLong, _parseLongPrimitive, _parseLongPrimitive, _parseShortPrimitive, _parseString, _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, isDefaultKeyDeserializer
      • Methods inherited from class com.fasterxml.jackson.databind.JsonDeserializer

        deserializeWithType, findBackReference, getAbsentValue, getDelegatee, getEmptyAccessPattern, getEmptyValue, getEmptyValue, getKnownPropertyNames, getNullAccessPattern, getNullValue, getNullValue, getObjectIdReader, replaceDelegatee, unwrappingDeserializer
    • Constructor Detail

      • PropertyTypedObjectDeserializer

        public PropertyTypedObjectDeserializer​(com.fasterxml.jackson.databind.JavaType listType,
                                               com.fasterxml.jackson.databind.JavaType mapType)
    • Method Detail

      • registerMapping

        public void registerMapping​(String matchExpression,
                                    Class<? extends Object> mappedClass)
      • unregisterMapping

        public void unregisterMapping​(String matchExpression)
      • deserialize

        public Object deserialize​(com.fasterxml.jackson.core.JsonParser jp,
                                  com.fasterxml.jackson.databind.DeserializationContext ctxt)
                           throws IOException
        Overrides:
        deserialize in class com.fasterxml.jackson.databind.deser.std.UntypedObjectDeserializer
        Throws:
        IOException