com.fasterxml.jackson.databind.node

## Class DecimalNode

- 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.NumericNode
          - - com.fasterxml.jackson.databind.node.DecimalNode

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

      public class DecimalNode
      extends NumericNode

  Numeric node that contains values that do not fit in simple integer (int, long) or floating point (double) values.
  See Also:
    Serialized Form

- - ### Nested Class Summary

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

      `JsonSerializable.Base`

  - ### Field Summary

    Fields
    Modifier and Type | Field and Description
    --- | ---
    `protected BigDecimal` | `_value`
    `static DecimalNode` | `ZERO`

  - ### Constructor Summary

    Constructors
    Constructor and Description
    `DecimalNode(BigDecimal v)`

  - ### Method Summary

    All Methods Static Methods Instance Methods Concrete Methods
    Modifier and Type | Method and Description
    --- | ---
    `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.
    `BigInteger` | `bigIntegerValue()` Returns integer value for this node (as `BigDecimal`), if and only if this node is numeric (`JsonNode.isNumber()` returns true).
    `boolean` | `canConvertToInt()` Method that can be used to check whether this node is a numeric node (`JsonNode.isNumber()` would return true) AND its value fits within Java's 32-bit signed integer type, `int`.
    `boolean` | `canConvertToLong()` Method that can be used to check whether this node is a numeric node (`JsonNode.isNumber()` would return true) AND its value fits within Java's 64-bit signed integer type, `long`.
    `BigDecimal` | `decimalValue()` Returns floating point value for this node (as `BigDecimal`), if and only if this node is numeric (`JsonNode.isNumber()` returns true).
    `double` | `doubleValue()` Returns 64-bit floating point (double) value for this node, if and only if this node is numeric (`JsonNode.isNumber()` returns true).
    `boolean` | `equals(Object o)` Equality for node objects is defined as full (deep) value equality.
    `float` | `floatValue()` Returns 32-bit floating value for this node, if and only if this node is numeric (`JsonNode.isNumber()` returns true).
    `int` | `hashCode()`
    `int` | `intValue()` Returns integer value for this node, if and only if this node is numeric (`JsonNode.isNumber()` returns true).
    `boolean` | `isBigDecimal()`
    `boolean` | `isFloatingPointNumber()`
    `long` | `longValue()` Returns 64-bit long value for this node, if and only if this node is numeric (`JsonNode.isNumber()` returns true).
    `JsonParser.NumberType` | `numberType()` Returns code that identifies type of underlying numeric value, if (and only if) node is a number node.
    `Number` | `numberValue()` Returns numeric value for this node, if and only if this node is numeric (`JsonNode.isNumber()` returns true); otherwise returns null
    `void` | `serialize(JsonGenerator jgen, SerializerProvider provider)` Method called to serialize node instances using given generator.
    `short` | `shortValue()` Returns 16-bit short value for this node, if and only if this node is numeric (`JsonNode.isNumber()` returns true).
    `static DecimalNode` | `valueOf(BigDecimal d)`

    - ### Methods inherited from class com.fasterxml.jackson.databind.node.NumericNode

      `asDouble, asDouble, asInt, asInt, asLong, asLong, getNodeType, isNaN`

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

      `findPath, required, required, toPrettyString, toString, traverse, traverse`

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

      `_reportRequiredViolation, _this, asBoolean, asBoolean, asText, at, at, binaryValue, booleanValue, elements, equals, fieldNames, fields, findParents, findValues, findValuesAsText, isArray, isBigInteger, isBinary, isBoolean, isContainerNode, isDouble, isFloat, isInt, isIntegralNumber, isLong, isMissingNode, isNull, isNumber, isObject, isPojo, isShort, isTextual, isValueNode, iterator, require, requiredAt, requiredAt, requireNonNull, size, textValue, with, withArray`

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

    - #### ZERO

          public static final DecimalNode ZERO

    - #### _value

          protected final BigDecimal _value

  - ### Constructor Detail

    - #### DecimalNode

          public DecimalNode(BigDecimal v)

  - ### Method Detail

    - #### valueOf

          public static DecimalNode valueOf(BigDecimal d)

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

    - #### numberType

          public JsonParser.NumberType numberType()

      Description copied from class: `BaseJsonNode`
      Returns code that identifies type of underlying numeric value, if (and only if) node is a number node.
      Specified by:
        `numberType` in interface `TreeNode`
      Specified by:
        `numberType` in class `NumericNode`

    - #### isFloatingPointNumber

          public boolean isFloatingPointNumber()

      Overrides:
        `isFloatingPointNumber` in class `JsonNode`
      Returns:
        True if this node represents a non-integral numeric JSON value

    - #### isBigDecimal

          public boolean isBigDecimal()

      Overrides:
        `isBigDecimal` in class `JsonNode`

    - #### canConvertToInt

          public boolean canConvertToInt()

      Description copied from class: `JsonNode`
      Method that can be used to check whether this node is a numeric node (`JsonNode.isNumber()` would return true) AND its value fits within Java's 32-bit signed integer type, `int`. Note that floating-point numbers are convertible if the integral part fits without overflow (as per standard Java coercion rules)

      NOTE: this method does not consider possible value type conversion from JSON String into Number; so even if this method returns false, it is possible that `JsonNode.asInt()` could still succeed if node is a JSON String representing integral number, or boolean.

      Specified by:
        `canConvertToInt` in class `NumericNode`

    - #### canConvertToLong

          public boolean canConvertToLong()

      Description copied from class: `JsonNode`
      Method that can be used to check whether this node is a numeric node (`JsonNode.isNumber()` would return true) AND its value fits within Java's 64-bit signed integer type, `long`. Note that floating-point numbers are convertible if the integral part fits without overflow (as per standard Java coercion rules)

      NOTE: this method does not consider possible value type conversion from JSON String into Number; so even if this method returns false, it is possible that `JsonNode.asLong()` could still succeed if node is a JSON String representing integral number, or boolean.

      Specified by:
        `canConvertToLong` in class `NumericNode`

    - #### numberValue

          public Number numberValue()

      Description copied from class: `JsonNode`
      Returns numeric value for this node, if and only if this node is numeric (`JsonNode.isNumber()` returns true); otherwise returns null
      Specified by:
        `numberValue` in class `NumericNode`
      Returns:
        Number value this node contains, if any (null for non-number nodes).

    - #### shortValue

          public short shortValue()

      Description copied from class: `JsonNode`
      Returns 16-bit short value for this node, if and only if this node is numeric (`JsonNode.isNumber()` returns true). For other types returns 0. For floating-point numbers, value is truncated using default Java coercion, similar to how cast from double to short operates.
      Overrides:
        `shortValue` in class `JsonNode`
      Returns:
        Short value this node contains, if any; 0 for non-number nodes.

    - #### intValue

          public int intValue()

      Description copied from class: `JsonNode`
      Returns integer value for this node, if and only if this node is numeric (`JsonNode.isNumber()` returns true). For other types returns 0. For floating-point numbers, value is truncated using default Java coercion, similar to how cast from double to int operates.
      Specified by:
        `intValue` in class `NumericNode`
      Returns:
        Integer value this node contains, if any; 0 for non-number nodes.

    - #### longValue

          public long longValue()

      Description copied from class: `JsonNode`
      Returns 64-bit long value for this node, if and only if this node is numeric (`JsonNode.isNumber()` returns true). For other types returns 0. For floating-point numbers, value is truncated using default Java coercion, similar to how cast from double to long operates.
      Specified by:
        `longValue` in class `NumericNode`
      Returns:
        Long value this node contains, if any; 0 for non-number nodes.

    - #### bigIntegerValue

          public BigInteger bigIntegerValue()

      Description copied from class: `JsonNode`
      Returns integer value for this node (as `BigDecimal`), if and only if this node is numeric (`JsonNode.isNumber()` returns true). For other types returns `BigInteger.ZERO`.
      Specified by:
        `bigIntegerValue` in class `NumericNode`
      Returns:
        `BigInteger` value this node contains, if numeric node; `BigInteger.ZERO` for non-number nodes.

    - #### floatValue

          public float floatValue()

      Description copied from class: `JsonNode`
      Returns 32-bit floating value for this node, if and only if this node is numeric (`JsonNode.isNumber()` returns true). For other types returns 0.0. For integer values, conversion is done using coercion; this means that an overflow is possible for `long` values
      Overrides:
        `floatValue` in class `JsonNode`
      Returns:
        32-bit float value this node contains, if any; 0.0 for non-number nodes.

    - #### doubleValue

          public double doubleValue()

      Description copied from class: `JsonNode`
      Returns 64-bit floating point (double) value for this node, if and only if this node is numeric (`JsonNode.isNumber()` returns true). For other types returns 0.0. For integer values, conversion is done using coercion; this may result in overflows with `BigInteger` values.
      Specified by:
        `doubleValue` in class `NumericNode`
      Returns:
        64-bit double value this node contains, if any; 0.0 for non-number nodes.

    - #### decimalValue

          public BigDecimal decimalValue()

      Description copied from class: `JsonNode`
      Returns floating point value for this node (as `BigDecimal`), if and only if this node is numeric (`JsonNode.isNumber()` returns true). For other types returns `BigDecimal.ZERO`.
      Specified by:
        `decimalValue` in class `NumericNode`
      Returns:
        `BigDecimal` value this node contains, if numeric node; `BigDecimal.ZERO` for non-number nodes.

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

    - #### serialize

          public final void serialize(JsonGenerator jgen,
                                      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`

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

    - #### hashCode

          public int hashCode()

      Specified by:
        `hashCode` in class `BaseJsonNode`

Copyright © 2008–2020 FasterXML. All rights reserved.