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

    clone, equals, finalize, 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>