Class AsArrayTypeDeserializer

Direct Known Subclasses:
AsExternalTypeDeserializer, AsPropertyTypeDeserializer

public class AsArrayTypeDeserializer extends TypeDeserializerBase
Type deserializer used with JsonTypeInfo.As.WRAPPER_ARRAY inclusion mechanism. Simple since JSON structure used is always the same, regardless of structure used for actual value: wrapping is done using a 2-element JSON Array where type id is the first element, and actual object data as second element.
  • Constructor Details

  • Method Details

    • forProperty

      public TypeDeserializer forProperty(BeanProperty prop)
      Description copied from class: TypeDeserializer
      Method called to create contextual version, to be used for values of given property. This may be the type itself (as is the case for bean properties), or values contained (for Collection or Map valued properties).
      Specified by:
      forProperty in class TypeDeserializerBase
    • getTypeInclusion

      public JsonTypeInfo.As getTypeInclusion()
      Description copied from class: TypeDeserializer
      Accessor for type information inclusion method that deserializer uses; indicates how type information is (expected to be) embedded in JSON input.
      Specified by:
      getTypeInclusion in class TypeDeserializerBase
    • deserializeTypedFromArray

      public Object deserializeTypedFromArray(tools.jackson.core.JsonParser p, DeserializationContext ctxt) throws tools.jackson.core.JacksonException
      Method called when actual object is serialized as JSON Array.
      Specified by:
      deserializeTypedFromArray in class TypeDeserializer
      Throws:
      tools.jackson.core.JacksonException
    • deserializeTypedFromObject

      public Object deserializeTypedFromObject(tools.jackson.core.JsonParser p, DeserializationContext ctxt) throws tools.jackson.core.JacksonException
      Method called when actual object is serialized as JSON Object
      Specified by:
      deserializeTypedFromObject in class TypeDeserializer
      Throws:
      tools.jackson.core.JacksonException
    • deserializeTypedFromScalar

      public Object deserializeTypedFromScalar(tools.jackson.core.JsonParser p, DeserializationContext ctxt) throws tools.jackson.core.JacksonException
      Description copied from class: TypeDeserializer
      Method called to let this type deserializer handle deserialization of "typed" object, when value itself is serialized as a scalar JSON value (something other than Array or Object), regardless of Java type. Method needs to figure out intended polymorphic type, locate ValueDeserializer to use, and call it with JSON data to deserializer (which does not contain type information).
      Specified by:
      deserializeTypedFromScalar in class TypeDeserializer
      Throws:
      tools.jackson.core.JacksonException
    • deserializeTypedFromAny

      public Object deserializeTypedFromAny(tools.jackson.core.JsonParser p, DeserializationContext ctxt) throws tools.jackson.core.JacksonException
      Description copied from class: TypeDeserializer
      Method called to let this type deserializer handle deserialization of "typed" object, when value itself may have been serialized using any kind of JSON value (Array, Object, scalar). Should only be called if JSON serialization is polymorphic (not Java type); for example when using JSON node representation, or "untyped" Java object (which may be Map, Collection, wrapper/primitive etc).
      Specified by:
      deserializeTypedFromAny in class TypeDeserializer
      Throws:
      tools.jackson.core.JacksonException
    • _deserialize

      protected Object _deserialize(tools.jackson.core.JsonParser p, DeserializationContext ctxt) throws tools.jackson.core.JacksonException
      Method that handles type information wrapper, locates actual subtype deserializer to use, and calls it to do actual deserialization.
      Throws:
      tools.jackson.core.JacksonException
    • _locateTypeId

      protected String _locateTypeId(tools.jackson.core.JsonParser p, DeserializationContext ctxt) throws tools.jackson.core.JacksonException
      Throws:
      tools.jackson.core.JacksonException
    • _usesExternalId

      protected boolean _usesExternalId()