## com.fasterxml.jackson.databind.node
Class MissingNode

    java.lang.Object
      com.fasterxml.jackson.databind.JsonNode
          com.fasterxml.jackson.databind.node.BaseJsonNode
              com.fasterxml.jackson.databind.node.MissingNode

All Implemented Interfaces:
  TreeNode, JsonSerializable, Iterable<JsonNode>

    public final class MissingNode

extends BaseJsonNode

This singleton node class is generated to denote "missing nodes" along paths that do not exist. For example, if a path via element of an array is requested for an element outside range of elements in the array; or for a non-array value, result will be reference to this node.

In most respects this placeholder node will act as `NullNode`; for example, for purposes of value conversions, value is considered to be null and represented as value zero when used for numeric conversions.

Field Summary

Fields inherited from class com.fasterxml.jackson.databind.JsonNode
`NO_NODES, NO_STRINGS`

Method Summary
`String` `asText()` Method that will return a valid String representation of the container value, if the node is a value node (method `JsonNode.isValueNode()` returns true), otherwise empty String.
`JsonToken` `asToken()` Method that can be used for efficient type detection when using stream abstraction for traversing nodes.

`

`<T extends JsonNode> T`

`

`deepCopy()`
Method that can be called to get a node that is guaranteed not to allow changing of this node through mutators on this node or any of its children.

`boolean` `equals(Object o)` Equality for node objects is defined as full (deep) value equality.
`static MissingNode` `getInstance()`
`boolean` `isMissingNode()` Method that returns true for "virtual" nodes which represent missing entries constructed by path accessor methods when there is no actual node matching given criteria.
`JsonNode` `path(int index)` This method is similar to `JsonNode.get(int)`, except that instead of returning null if no such element exists (due to index being out of range, or this node not being an array), a "missing node" (node that returns true for `JsonNode.isMissingNode()`) will be returned.
`JsonNode` `path(String fieldName)` This method is similar to `JsonNode.get(String)`, except that instead of returning null if no such value exists (due to this node not being an object, or object not having value for the specified field), a "missing node" (node that returns true for `JsonNode.isMissingNode()`) will be returned.
`void` `serialize(JsonGenerator jg, SerializerProvider provider)` Method called to serialize node instances using given generator.
`void` `serializeWithType(JsonGenerator jg, SerializerProvider provider, TypeSerializer typeSer)` Type information is needed, even if JsonNode instances are "plain" JSON, since they may be mixed with other types.
`String` `toString()` Note: marked as abstract to ensure all implementation classes define it properly.

Methods inherited from class com.fasterxml.jackson.databind.node.BaseJsonNode
`findParent, findParents, findPath, findValue, findValues, findValuesAsText, numberType, traverse`

Methods inherited from class com.fasterxml.jackson.databind.JsonNode

`asBoolean, asBoolean, asDouble, asDouble, asInt, asInt, asLong, asLong, bigIntegerValue, binaryValue, booleanValue, canConvertToInt, canConvertToLong, decimalValue, doubleValue, elements, fieldNames, fields, findParents, findValues, findValuesAsText, get, get, has, has, hasNonNull, hasNonNull, intValue, isArray, isBigDecimal, isBigInteger, isBinary, isBoolean, isContainerNode, isDouble, isFloatingPointNumber, isInt, isIntegralNumber, isLong, isNull, isNumber, isObject, isPojo, isTextual, isValueNode, iterator, longValue, numberValue, size, textValue, with, withArray`

Methods inherited from class java.lang.Object
`clone, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait`

Method Detail

### deepCopy

    public <T extends JsonNode> T deepCopy()

  Description copied from class: `JsonNode`
  Method that can be called to get a node that is guaranteed not to allow changing of this node through mutators on this node or any of its children. This means it can either make a copy of this node (and all mutable children and grand children nodes), or node itself if it is immutable.

  Note: return type is guaranteed to have same type as the node method is called on; which is why method is declared with local generic type.

  Specified by:
    `deepCopy` in class `JsonNode`
  Returns:
    Node that is either a copy of this node (and all non-leaf children); or, for immutable leaf nodes, node itself.

### getInstance

    public static MissingNode getInstance()

### asToken

    public JsonToken asToken()

  Description copied from class: `BaseJsonNode`
  Method that can be used for efficient type detection when using stream abstraction for traversing nodes. Will return the first `JsonToken` that equivalent stream event would produce (for most nodes there is just one token but for structured/container types multiple)

  Specified by:
    `asToken` in interface `TreeNode`
  Specified by:
    `asToken` in class `BaseJsonNode`

### isMissingNode

    public boolean isMissingNode()

  Description copied from class: `JsonNode`
  Method that returns true for "virtual" nodes which represent missing entries constructed by path accessor methods when there is no actual node matching given criteria.

  Note: one and only one of methods `JsonNode.isValueNode()`, `JsonNode.isContainerNode()` and `JsonNode.isMissingNode()` ever returns true for any given node.

  Overrides:
    `isMissingNode` in class `JsonNode`

### asText

    public String asText()

  Description copied from class: `JsonNode`
  Method that will return a valid String representation of the container value, if the node is a value node (method `JsonNode.isValueNode()` returns true), otherwise empty String.

  Specified by:
    `asText` in class `JsonNode`

### path

    public JsonNode path(String fieldName)

  Description copied from class: `JsonNode`
  This method is similar to `JsonNode.get(String)`, except that instead of returning null if no such value exists (due to this node not being an object, or object not having value for the specified field), a "missing node" (node that returns true for `JsonNode.isMissingNode()`) will be returned. This allows for convenient and safe chained access via path calls.

  Specified by:
    `path` in class `JsonNode`

### path

    public JsonNode path(int index)

  Description copied from class: `JsonNode`
  This method is similar to `JsonNode.get(int)`, except that instead of returning null if no such element exists (due to index being out of range, or this node not being an array), a "missing node" (node that returns true for `JsonNode.isMissingNode()`) will be returned. This allows for convenient and safe chained access via path calls.

  Specified by:
    `path` in class `JsonNode`

### serialize

    public final void serialize(JsonGenerator jg,
                                SerializerProvider provider)
                         throws IOException,
                                JsonProcessingException

  Description copied from class: `BaseJsonNode`
  Method called to serialize node instances using given generator.

  Specified by:
    `serialize` in interface `JsonSerializable`
  Specified by:
    `serialize` in class `BaseJsonNode`
  Throws:
    `IOException`
    `JsonProcessingException`

### serializeWithType

    public void serializeWithType(JsonGenerator jg,
                                  SerializerProvider provider,
                                  TypeSerializer typeSer)
                           throws IOException,
                                  JsonProcessingException

  Description copied from class: `BaseJsonNode`
  Type information is needed, even if JsonNode instances are "plain" JSON, since they may be mixed with other types.

  Specified by:
    `serializeWithType` in interface `JsonSerializable`
  Specified by:
    `serializeWithType` in class `BaseJsonNode`
  Throws:
    `IOException`
    `JsonProcessingException`

### equals

    public boolean equals(Object o)

  Description copied from class: `JsonNode`
  Equality for node objects is defined as full (deep) value equality. This means that it is possible to compare complete JSON trees for equality by comparing equality of root nodes.

  Note: marked as abstract to ensure all implementation classes define it properly and not rely on definition from `Object`.

  Specified by:
    `equals` in class `JsonNode`

### toString

    public String toString()

  Description copied from class: `JsonNode`

  Note: marked as abstract to ensure all implementation classes define it properly.

  Specified by:
    `toString` in class `JsonNode`

Copyright © 2012 FasterXML. All Rights Reserved.