All Implemented Interfaces:
TreeNode, JsonSerializable, Serializable, Iterable<JsonNode>
Direct Known Subclasses:
BigIntegerNode, DecimalNode, DoubleNode, FloatNode, IntNode, LongNode, ShortNode

public abstract class NumericNode extends ValueNode
Intermediate value node used for numeric nodes.
See Also:
  • Constructor Details

    • NumericNode

      protected NumericNode()
  • Method Details

    • getNodeType

      public final 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
    • numberType

      public abstract 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
      Overrides:
      numberType in class BaseJsonNode
      Returns:
      Type of number contained, if any; or null if node does not contain numeric value.
    • numberValue

      public abstract 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
      Overrides:
      numberValue in class JsonNode
      Returns:
      Number value this node contains, if any (null for non-number nodes).
    • intValue

      public abstract 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.
      Overrides:
      intValue in class JsonNode
      Returns:
      Integer value this node contains, if any; 0 for non-number nodes.
    • longValue

      public abstract 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.
      Overrides:
      longValue in class JsonNode
      Returns:
      Long value this node contains, if any; 0 for non-number nodes.
    • doubleValue

      public abstract 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.
      Overrides:
      doubleValue in class JsonNode
      Returns:
      64-bit double value this node contains, if any; 0.0 for non-number nodes.
    • decimalValue

      public abstract 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.
      Overrides:
      decimalValue in class JsonNode
      Returns:
      BigDecimal value this node contains, if numeric node; BigDecimal.ZERO for non-number nodes.
    • bigIntegerValue

      public abstract BigInteger bigIntegerValue()
      Description copied from class: JsonNode
      Returns integer value for this node (as BigInteger), if and only if this node is numeric (JsonNode.isNumber() returns true). For other types returns BigInteger.ZERO.
      Overrides:
      bigIntegerValue in class JsonNode
      Returns:
      BigInteger value this node contains, if numeric node; BigInteger.ZERO for non-number nodes.
    • canConvertToInt

      public abstract 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.

      Overrides:
      canConvertToInt in class JsonNode
    • canConvertToLong

      public abstract 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.

      Overrides:
      canConvertToLong in class JsonNode
    • asText

      public abstract 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
    • asInt

      public final int asInt()
      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), default value of 0 will be returned; no exceptions are thrown.

      Overrides:
      asInt in class JsonNode
    • asInt

      public final 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 final long asLong()
      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), default value of 0 will be returned; no exceptions are thrown.

      Overrides:
      asLong in class JsonNode
    • asLong

      public final 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 final double asDouble()
      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), default value of 0.0 will be returned; no exceptions are thrown.

      Overrides:
      asDouble in class JsonNode
    • asDouble

      public final 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
    • isNaN

      public boolean isNaN()
      Convenience method for checking whether this node is a FloatNode or DoubleNode that contains "not-a-number" (NaN) value.
      Since:
      2.9