Class JavaObjectDeserializer

java.lang.Object
tools.jackson.databind.ValueDeserializer<Object>
com.xebialabs.xlrelease.serialization.json.jackson.JavaObjectDeserializer
All Implemented Interfaces:
tools.jackson.databind.deser.NullValueProvider

public class JavaObjectDeserializer extends tools.jackson.databind.ValueDeserializer<Object>
Annotation-friendly deserializer that binds JSON content to Java collections.

Jackson 3 removed the no-arg constructor from UntypedObjectDeserializer, so it can no longer be referenced directly via @JsonDeserialize(contentUsing = ...). This wrapper provides the required no-arg constructor and delegates to UntypedObjectDeserializer. The delegate is constructed with null list/map types, matching Jackson 2's no-arg constructor: nested JSON objects and arrays are bound to LinkedHashMap and ArrayList via the deserializer's own logic, without registering custom collection deserializers that DefaultScalaModule would override.

Required when DefaultScalaModule is registered: without this, nested map values are deserialized as Scala collections (e.g. Map1), which the XL type system cannot store into MAP_STRING_STRING and similar Java-only property types.

  • Nested Class Summary

    Nested classes/interfaces inherited from class tools.jackson.databind.ValueDeserializer

    tools.jackson.databind.ValueDeserializer.None
  • Constructor Summary

    Constructors
    Constructor
    Description
     
  • Method Summary

    Modifier and Type
    Method
    Description
    tools.jackson.databind.ValueDeserializer<?>
    createContextual(tools.jackson.databind.DeserializationContext ctxt, tools.jackson.databind.BeanProperty property)
     
    deserialize(tools.jackson.core.JsonParser parser, tools.jackson.databind.DeserializationContext context)
     
    deserialize(tools.jackson.core.JsonParser parser, tools.jackson.databind.DeserializationContext context, Object intoValue)
     
    deserializeWithType(tools.jackson.core.JsonParser parser, tools.jackson.databind.DeserializationContext context, tools.jackson.databind.jsontype.TypeDeserializer typeDeserializer)
     
    getAbsentValue(tools.jackson.databind.DeserializationContext ctxt)
     
    tools.jackson.databind.ValueDeserializer<?>
     
    getEmptyValue(tools.jackson.databind.DeserializationContext ctxt)
     
    getNullValue(tools.jackson.databind.DeserializationContext ctxt)
     
     
    boolean
     
    tools.jackson.databind.type.LogicalType
     
    void
    resolve(tools.jackson.databind.DeserializationContext ctxt)
     
    supportsUpdate(tools.jackson.databind.DeserializationConfig config)
     
    tools.jackson.databind.ValueDeserializer<Object>
    unwrappingDeserializer(tools.jackson.databind.DeserializationContext ctxt, tools.jackson.databind.util.NameTransformer transformer)
     

    Methods inherited from class tools.jackson.databind.ValueDeserializer

    deserializeWithType, findBackReference, getEmptyAccessPattern, getKnownPropertyNames, getNullAccessPattern, getObjectIdReader, replaceDelegatee

    Methods inherited from class java.lang.Object

    equals, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
  • Constructor Details

    • JavaObjectDeserializer

      public JavaObjectDeserializer()
  • Method Details

    • resolve

      public void resolve(tools.jackson.databind.DeserializationContext ctxt)
      Overrides:
      resolve in class tools.jackson.databind.ValueDeserializer<Object>
    • createContextual

      public tools.jackson.databind.ValueDeserializer<?> createContextual(tools.jackson.databind.DeserializationContext ctxt, tools.jackson.databind.BeanProperty property)
      Overrides:
      createContextual in class tools.jackson.databind.ValueDeserializer<Object>
    • deserialize

      public Object deserialize(tools.jackson.core.JsonParser parser, tools.jackson.databind.DeserializationContext context)
      Specified by:
      deserialize in class tools.jackson.databind.ValueDeserializer<Object>
    • deserialize

      public Object deserialize(tools.jackson.core.JsonParser parser, tools.jackson.databind.DeserializationContext context, Object intoValue)
      Overrides:
      deserialize in class tools.jackson.databind.ValueDeserializer<Object>
    • deserializeWithType

      public Object deserializeWithType(tools.jackson.core.JsonParser parser, tools.jackson.databind.DeserializationContext context, tools.jackson.databind.jsontype.TypeDeserializer typeDeserializer)
      Overrides:
      deserializeWithType in class tools.jackson.databind.ValueDeserializer<Object>
    • logicalType

      public tools.jackson.databind.type.LogicalType logicalType()
      Overrides:
      logicalType in class tools.jackson.databind.ValueDeserializer<Object>
    • isCachable

      public boolean isCachable()
      Overrides:
      isCachable in class tools.jackson.databind.ValueDeserializer<Object>
    • supportsUpdate

      public Boolean supportsUpdate(tools.jackson.databind.DeserializationConfig config)
      Overrides:
      supportsUpdate in class tools.jackson.databind.ValueDeserializer<Object>
    • handledType

      public Class<?> handledType()
      Overrides:
      handledType in class tools.jackson.databind.ValueDeserializer<Object>
    • getNullValue

      public Object getNullValue(tools.jackson.databind.DeserializationContext ctxt)
      Specified by:
      getNullValue in interface tools.jackson.databind.deser.NullValueProvider
      Overrides:
      getNullValue in class tools.jackson.databind.ValueDeserializer<Object>
    • getAbsentValue

      public Object getAbsentValue(tools.jackson.databind.DeserializationContext ctxt)
      Specified by:
      getAbsentValue in interface tools.jackson.databind.deser.NullValueProvider
      Overrides:
      getAbsentValue in class tools.jackson.databind.ValueDeserializer<Object>
    • getEmptyValue

      public Object getEmptyValue(tools.jackson.databind.DeserializationContext ctxt)
      Overrides:
      getEmptyValue in class tools.jackson.databind.ValueDeserializer<Object>
    • unwrappingDeserializer

      public tools.jackson.databind.ValueDeserializer<Object> unwrappingDeserializer(tools.jackson.databind.DeserializationContext ctxt, tools.jackson.databind.util.NameTransformer transformer)
      Overrides:
      unwrappingDeserializer in class tools.jackson.databind.ValueDeserializer<Object>
    • getDelegatee

      public tools.jackson.databind.ValueDeserializer<?> getDelegatee()
      Overrides:
      getDelegatee in class tools.jackson.databind.ValueDeserializer<Object>