com.fasterxml.jackson.databind.node

## Class POJONode

- java.lang.Object
- - com.fasterxml.jackson.databind.JsonSerializable.Base
  - - com.fasterxml.jackson.databind.JsonNode
    - - com.fasterxml.jackson.databind.node.BaseJsonNode
      - - com.fasterxml.jackson.databind.node.ValueNode
        - - com.fasterxml.jackson.databind.node.POJONode

All Implemented Interfaces:
  com.fasterxml.jackson.core.TreeNode, JsonSerializable, Serializable, Iterable<JsonNode>

    public class POJONode
    extends ValueNode

Value node that contains a wrapped POJO, to be serialized as a JSON constructed through data mapping (usually done by calling `ObjectMapper`).

See Also:
  Serialized Form

### Nested Class Summary

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

`JsonNode.OverwriteMode`

### Nested classes/interfaces inherited from interface com.fasterxml.jackson.databind.JsonSerializable

`JsonSerializable.Base`

### Field Summary

Fields
`protected Object` `_value`

### Constructor Summary

Constructors
Constructor and Description
`POJONode(Object v)`

### Method Summary

All Methods Instance Methods Concrete Methods Deprecated Methods
`protected boolean` `_pojoEquals(POJONode other)`
`boolean` `asBoolean(boolean defaultValue)` Method that will try to convert value of this node to a Java boolean.
`double` `asDouble(double defaultValue)` Method that will try to convert value of this node to a Java double.
`int` `asInt(int defaultValue)` Method that will try to convert value of this node to a Java int.
`long` `asLong(long defaultValue)` Method that will try to convert value of this node to a Java long.
`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.
`String` `asText(String defaultValue)` Deprecated.
`com.fasterxml.jackson.core.JsonToken` `asToken()` Method that can be used for efficient type detection when using stream abstraction for traversing nodes.
`byte[]` `binaryValue()` As it is possible that some implementations embed byte[] as POJONode (despite optimal being `BinaryNode`), let's add support for exposing binary data here too.
`boolean` `equals(Object o)` Equality for node objects is defined as full (deep) value equality.
`JsonNodeType` `getNodeType()` Return the type of this node
`Object` `getPojo()` Method that can be used to access the POJO this node wraps.
`int` `hashCode()`
`void` `serialize(com.fasterxml.jackson.core.JsonGenerator gen, SerializerProvider ctxt)` Method called to serialize node instances using given generator.

### Methods inherited from class com.fasterxml.jackson.databind.node.ValueNode

`_at, deepCopy, findParent, findParents, findValue, findValues, findValuesAsText, get, get, has, has, hasNonNull, hasNonNull, isEmpty, path, path, serializeWithType`

### Methods inherited from class com.fasterxml.jackson.databind.node.BaseJsonNode

`_bigIntFromBigDec, _jsonPointerIfValid, _reportWrongNodeOperation, _reportWrongNodeType, _withArray, _withObject, _withXxxMayReplace, _withXxxVerifyReplace, findPath, numberType, required, required, toPrettyString, toString, traverse, traverse, withArray, withObject`

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

`_reportRequiredViolation, _this, asBoolean, asDouble, asInt, asLong, at, at, bigIntegerValue, booleanValue, canConvertToExactIntegral, canConvertToInt, canConvertToLong, decimalValue, doubleValue, elements, equals, fieldNames, fields, findParents, findValues, findValuesAsText, floatValue, intValue, isArray, isBigDecimal, isBigInteger, isBinary, isBoolean, isContainerNode, isDouble, isFloat, isFloatingPointNumber, isInt, isIntegralNumber, isLong, isMissingNode, isNull, isNumber, isObject, isPojo, isShort, isTextual, isValueNode, iterator, longValue, numberValue, properties, require, requiredAt, requiredAt, requireNonNull, shortValue, size, textValue, with, withArray, withArray, withArray, withArrayProperty, withObject, withObject, withObject, withObjectProperty`

### Methods inherited from class com.fasterxml.jackson.databind.JsonSerializable.Base

`isEmpty`

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

`clone, finalize, getClass, notify, notifyAll, wait, wait, wait`

### Methods inherited from interface java.lang.Iterable

`forEach, spliterator`

### Field Detail

#### _value

    protected final Object _value

### Constructor Detail

#### POJONode

    public POJONode(Object v)

### Method Detail

#### getNodeType

    public JsonNodeType getNodeType()

Description copied from class: `JsonNode`
Return the type of this node

Specified by:
  `getNodeType` in class `JsonNode`
Returns:
  the node type as a `JsonNodeType` enum value

#### asToken

    public com.fasterxml.jackson.core.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 `com.fasterxml.jackson.core.TreeNode`
Specified by:
  `asToken` in class `ValueNode`

#### binaryValue

    public byte[] binaryValue()
                       throws IOException

As it is possible that some implementations embed byte[] as POJONode (despite optimal being `BinaryNode`), let's add support for exposing binary data here too.

Overrides:
  `binaryValue` in class `JsonNode`
Returns:
  Binary data this node contains, iff it is a binary node; null otherwise
Throws:
  `IOException`

#### 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`

#### asText

    @Deprecated
    public String asText(String defaultValue)

Deprecated.
Description copied from class: `JsonNode`
Method similar to `JsonNode.asText()`, except that it will return `defaultValue` in cases where null value would be returned; either for missing nodes (trying to access missing property, or element at invalid item for array) or explicit nulls.

NOTE: deprecated since 2.17 because `JsonNode.asText()` very rarely returns `null` for any node types -- in fact, neither `MissingNode` nor `NullNode` return `null` from `JsonNode.asText()`.

Overrides:
  `asText` in class `JsonNode`

#### asBoolean

    public boolean asBoolean(boolean defaultValue)

Description copied from class: `JsonNode`
Method that will try to convert value of this node to a Java boolean. JSON booleans map naturally; integer numbers other than 0 map to true, and 0 maps to false and Strings 'true' and 'false' map to corresponding values.

If representation cannot be converted to a boolean value (including structured types like Objects and Arrays), specified defaultValue will be returned; no exceptions are thrown.

Overrides:
  `asBoolean` in class `JsonNode`

#### asInt

    public int asInt(int defaultValue)

Description copied from class: `JsonNode`
Method that will try to convert value of this node to a Java int. Numbers are coerced using default Java rules; booleans convert to 0 (false) and 1 (true), and Strings are parsed using default Java language integer parsing rules.

If representation cannot be converted to an int (including structured types like Objects and Arrays), specified defaultValue will be returned; no exceptions are thrown.

Overrides:
  `asInt` in class `JsonNode`

#### asLong

    public long asLong(long defaultValue)

Description copied from class: `JsonNode`
Method that will try to convert value of this node to a Java long. Numbers are coerced using default Java rules; booleans convert to 0 (false) and 1 (true), and Strings are parsed using default Java language integer parsing rules.

If representation cannot be converted to a long (including structured types like Objects and Arrays), specified defaultValue will be returned; no exceptions are thrown.

Overrides:
  `asLong` in class `JsonNode`

#### asDouble

    public double asDouble(double defaultValue)

Description copied from class: `JsonNode`
Method that will try to convert value of this node to a Java double. Numbers are coerced using default Java rules; booleans convert to 0.0 (false) and 1.0 (true), and Strings are parsed using default Java language integer parsing rules.

If representation cannot be converted to an int (including structured types like Objects and Arrays), specified defaultValue will be returned; no exceptions are thrown.

Overrides:
  `asDouble` in class `JsonNode`

#### serialize

    public final void serialize(com.fasterxml.jackson.core.JsonGenerator gen,
                                SerializerProvider ctxt)
                         throws IOException

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`

#### getPojo

    public Object getPojo()

Method that can be used to access the POJO this node wraps.

#### 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`

#### _pojoEquals

    protected boolean _pojoEquals(POJONode other)

Since:
  2.3

#### hashCode

    public int hashCode()

Specified by:
  `hashCode` in class `BaseJsonNode`