com.fasterxml.jackson.databind.deser.std

## Class JsonNodeDeserializer

- java.lang.Object
- - com.fasterxml.jackson.databind.JsonDeserializer<T>
  - - com.fasterxml.jackson.databind.deser.std.StdDeserializer<T>
    - - com.fasterxml.jackson.databind.deser.std.JsonNodeDeserializer

- All Implemented Interfaces:
    java.io.Serializable

      public class JsonNodeDeserializer
      extends StdDeserializer<T>

  Deserializer that can build instances of `JsonNode` from any JSON content, using appropriate `JsonNode` type.
  See Also:
    Serialized Form

- - ### Nested Class Summary

    - ### Nested classes/interfaces inherited from class com.fasterxml.jackson.databind.JsonDeserializer

      `JsonDeserializer.None`

  - ### Field Summary

    - ### Fields inherited from class com.fasterxml.jackson.databind.deser.std.StdDeserializer

      `_valueClass, F_MASK_INT_COERCIONS`

  - ### Constructor Summary

    Constructors
    Modifier | Constructor and Description
    --- | ---
    `protected` | `JsonNodeDeserializer()`

  - ### Method Summary

    Methods
    Modifier and Type | Method and Description
    --- | ---
    `protected JsonNode` | `_fromEmbedded(com.fasterxml.jackson.core.JsonParser p, DeserializationContext ctxt, JsonNodeFactory nodeFactory)`
    `protected JsonNode` | `_fromFloat(com.fasterxml.jackson.core.JsonParser p, DeserializationContext ctxt, JsonNodeFactory nodeFactory)`
    `protected JsonNode` | `_fromInt(com.fasterxml.jackson.core.JsonParser p, DeserializationContext ctxt, JsonNodeFactory nodeFactory)`
    `protected void` | `_handleDuplicateField(com.fasterxml.jackson.core.JsonParser p, DeserializationContext ctxt, JsonNodeFactory nodeFactory, java.lang.String fieldName, ObjectNode objectNode, JsonNode oldValue, JsonNode newValue)` Method called when there is a duplicate value for a field.
    `protected void` | `_reportProblem(com.fasterxml.jackson.core.JsonParser p, java.lang.String msg)` Deprecated.
    `JsonNode` | `deserialize(com.fasterxml.jackson.core.JsonParser p, DeserializationContext ctxt)` Implementation that will produce types of any JSON nodes; not just one deserializer is registered to handle (in case of more specialized handler).
    `protected JsonNode` | `deserializeAny(com.fasterxml.jackson.core.JsonParser p, DeserializationContext ctxt, JsonNodeFactory nodeFactory)`
    `protected ArrayNode` | `deserializeArray(com.fasterxml.jackson.core.JsonParser p, DeserializationContext ctxt, JsonNodeFactory nodeFactory)`
    `protected ObjectNode` | `deserializeObject(com.fasterxml.jackson.core.JsonParser p, DeserializationContext ctxt, JsonNodeFactory nodeFactory)`
    `java.lang.Object` | `deserializeWithType(com.fasterxml.jackson.core.JsonParser p, DeserializationContext ctxt, TypeDeserializer typeDeserializer)` Base implementation that does not assume specific type inclusion mechanism.
    `static JsonDeserializer<? extends JsonNode>` | `getDeserializer(java.lang.Class<?> nodeClass)` Factory method for accessing deserializer for specific node type
    `JsonNode` | `getNullValue()` Deprecated.
    `JsonNode` | `getNullValue(DeserializationContext ctxt)` Method that can be called to determine value to be used for representing null values (values deserialized when JSON token is `JsonToken.VALUE_NULL`).
    `boolean` | `isCachable()` Method called to see if deserializer instance is cachable and usable for other properties of same type (type for which instance was created).

    - ### Methods inherited from class com.fasterxml.jackson.databind.deser.std.StdDeserializer

      `_coerceIntegral, _deserializeFromEmpty, _failDoubleToIntCoercion, _hasTextualNull, _isIntNumber, _isNaN, _isNegInf, _isPosInf, _parseBoolean, _parseBooleanFromInt, _parseBooleanFromOther, _parseBooleanPrimitive, _parseByte, _parseDate, _parseDate, _parseDouble, _parseDoublePrimitive, _parseFloat, _parseFloatPrimitive, _parseInteger, _parseIntPrimitive, _parseLong, _parseLongPrimitive, _parseShort, _parseShortPrimitive, _parseString, findConvertingContentDeserializer, findDeserializer, findFormatFeature, findFormatOverrides, getValueClass, getValueType, handledType, handleMissingEndArrayForSingle, handleUnknownProperty, isDefaultDeserializer, isDefaultKeyDeserializer, parseDouble`

    - ### Methods inherited from class com.fasterxml.jackson.databind.JsonDeserializer

      `deserialize, findBackReference, getDelegatee, getEmptyValue, getEmptyValue, getKnownPropertyNames, getObjectIdReader, replaceDelegatee, unwrappingDeserializer`

    - ### Methods inherited from class java.lang.Object

      `clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

- - ### Constructor Detail

    - #### JsonNodeDeserializer

          protected JsonNodeDeserializer()

  - ### Method Detail

    - #### getDeserializer

          public static JsonDeserializer<? extends JsonNode> getDeserializer(java.lang.Class<?> nodeClass)

      Factory method for accessing deserializer for specific node type

    - #### getNullValue

          public JsonNode getNullValue(DeserializationContext ctxt)

      Description copied from class: `JsonDeserializer`
      Method that can be called to determine value to be used for representing null values (values deserialized when JSON token is `JsonToken.VALUE_NULL`). Usually this is simply Java null, but for some types (especially primitives) it may be necessary to use non-null values.

      Since version 2.6 (in which the context argument was added), call is expected to be made each and every time a null token needs to be handled.

      Default implementation simply returns null.

      Overrides:
        `getNullValue` in class `JsonDeserializer<JsonNode>`

    - #### getNullValue

          @Deprecated
          public JsonNode getNullValue()

      Deprecated.
      Overrides:
        `getNullValue` in class `JsonDeserializer<JsonNode>`

    - #### deserialize

          public JsonNode deserialize(com.fasterxml.jackson.core.JsonParser p,
                             DeserializationContext ctxt)
                               throws java.io.IOException

      Implementation that will produce types of any JSON nodes; not just one deserializer is registered to handle (in case of more specialized handler). Overridden by typed sub-classes for more thorough checking
      Specified by:
        `deserialize` in class `JsonDeserializer<JsonNode>`
      Parameters:
        `p` - Parsed used for reading JSON content
        `ctxt` - Context that can be used to access information about this deserialization activity.
      Returns:
        Deserialized value
      Throws:
        `java.io.IOException`

    - #### deserializeWithType

          public java.lang.Object deserializeWithType(com.fasterxml.jackson.core.JsonParser p,
                                             DeserializationContext ctxt,
                                             TypeDeserializer typeDeserializer)
                                               throws java.io.IOException

      Description copied from class: `StdDeserializer`
      Base implementation that does not assume specific type inclusion mechanism. Sub-classes are expected to override this method if they are to handle type information.
      Overrides:
        `deserializeWithType` in class `StdDeserializer<T extends JsonNode>`
        `typeDeserializer` - Deserializer to use for handling type information
      Throws:
        `java.io.IOException`

    - #### isCachable

          public boolean isCachable()

      Description copied from class: `JsonDeserializer`
      Method called to see if deserializer instance is cachable and usable for other properties of same type (type for which instance was created).

      Note that cached instances are still resolved on per-property basis, if instance implements `ResolvableDeserializer`: cached instance is just as the base. This means that in most cases it is safe to cache instances; however, it only makes sense to cache instances if instantiation is expensive, or if instances are heavy-weight.

      Default implementation returns false, to indicate that no caching is done.

      Overrides:
        `isCachable` in class `JsonDeserializer<T extends JsonNode>`

    - #### _reportProblem

          @Deprecated
          protected void _reportProblem(com.fasterxml.jackson.core.JsonParser p,
                                       java.lang.String msg)
                                 throws JsonMappingException

      Deprecated.
      Throws:
        `JsonMappingException`

    - #### _handleDuplicateField

          protected void _handleDuplicateField(com.fasterxml.jackson.core.JsonParser p,
                                   DeserializationContext ctxt,
                                   JsonNodeFactory nodeFactory,
                                   java.lang.String fieldName,
                                   ObjectNode objectNode,
                                   JsonNode oldValue,
                                   JsonNode newValue)
                                        throws com.fasterxml.jackson.core.JsonProcessingException

      Method called when there is a duplicate value for a field. By default we don't care, and the last value is used. Can be overridden to provide alternate handling, such as throwing an exception, or choosing different strategy for combining values or choosing which one to keep.
      Parameters:
        `fieldName` - Name of the field for which duplicate value was found
        `objectNode` - Object node that contains values
        `oldValue` - Value that existed for the object node before newValue was added
        `newValue` - Newly added value just added to the object node
      Throws:
        `com.fasterxml.jackson.core.JsonProcessingException`

    - #### deserializeObject

          protected final ObjectNode deserializeObject(com.fasterxml.jackson.core.JsonParser p,
                                     DeserializationContext ctxt,
                                     JsonNodeFactory nodeFactory)
                                                throws java.io.IOException

      Throws:
        `java.io.IOException`

    - #### deserializeArray

          protected final ArrayNode deserializeArray(com.fasterxml.jackson.core.JsonParser p,
                                   DeserializationContext ctxt,
                                   JsonNodeFactory nodeFactory)
                                              throws java.io.IOException

      Throws:
        `java.io.IOException`

    - #### deserializeAny

          protected final JsonNode deserializeAny(com.fasterxml.jackson.core.JsonParser p,
                                DeserializationContext ctxt,
                                JsonNodeFactory nodeFactory)
                                           throws java.io.IOException

      Throws:
        `java.io.IOException`

    - #### _fromInt

          protected final JsonNode _fromInt(com.fasterxml.jackson.core.JsonParser p,
                          DeserializationContext ctxt,
                          JsonNodeFactory nodeFactory)
                                     throws java.io.IOException

      Throws:
        `java.io.IOException`

    - #### _fromFloat

          protected final JsonNode _fromFloat(com.fasterxml.jackson.core.JsonParser p,
                            DeserializationContext ctxt,
                            JsonNodeFactory nodeFactory)
                                       throws java.io.IOException

      Throws:
        `java.io.IOException`

    - #### _fromEmbedded

          protected final JsonNode _fromEmbedded(com.fasterxml.jackson.core.JsonParser p,
                               DeserializationContext ctxt,
                               JsonNodeFactory nodeFactory)
                                          throws java.io.IOException

      Throws:
        `java.io.IOException`