Class DecimalNode
- java.lang.Object
-
- All Implemented Interfaces:
TreeNode,JsonSerializable,java.io.Serializable,java.lang.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 class com.fasterxml.jackson.databind.JsonNode
JsonNode.OverwriteMode
-
Nested classes/interfaces inherited from interface com.fasterxml.jackson.databind.JsonSerializable
JsonSerializable.Base
-
-
Field Summary
Fields Modifier and Type Field Description static DecimalNodeZERO
-
Constructor Summary
Constructors Constructor Description DecimalNode(java.math.BigDecimal v)
-
Method Summary
All Methods Static Methods Instance Methods Concrete Methods Modifier and Type Method Description java.lang.StringasText()Method that will return a valid String representation of the container value, if the node is a value node (methodJsonNode.isValueNode()returns true), otherwise empty String.JsonTokenasToken()Method that can be used for efficient type detection when using stream abstraction for traversing nodes.java.math.BigIntegerbigIntegerValue()Returns integer value for this node (asBigInteger), if and only if this node is numeric (JsonNode.isNumber()returns true).booleancanConvertToExactIntegral()Method that can be used to check whether contained value is numeric (returns true forJsonNode.isNumber()) and can be losslessly converted to integral number (specifically,BigIntegerbut potentially others, seeJsonNode.canConvertToInt()andJsonNode.canConvertToInt()).booleancanConvertToInt()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.booleancanConvertToLong()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.java.math.BigDecimaldecimalValue()Returns floating point value for this node (asBigDecimal), if and only if this node is numeric (JsonNode.isNumber()returns true).doubledoubleValue()Returns 64-bit floating point (double) value for this node, if and only if this node is numeric (JsonNode.isNumber()returns true).booleanequals(java.lang.Object o)Equality for node objects is defined as full (deep) value equality.floatfloatValue()Returns 32-bit floating value for this node, if and only if this node is numeric (JsonNode.isNumber()returns true).inthashCode()intintValue()Returns integer value for this node, if and only if this node is numeric (JsonNode.isNumber()returns true).booleanisBigDecimal()booleanisFloatingPointNumber()longlongValue()Returns 64-bit long value for this node, if and only if this node is numeric (JsonNode.isNumber()returns true).JsonParser.NumberTypenumberType()Returns code that identifies type of underlying numeric value, if (and only if) node is a number node.java.lang.NumbernumberValue()Returns numeric value for this node, if and only if this node is numeric (JsonNode.isNumber()returns true); otherwise returns nullvoidserialize(JsonGenerator g, SerializerProvider provider)Method called to serialize node instances using given generator.shortshortValue()Returns 16-bit short value for this node, if and only if this node is numeric (JsonNode.isNumber()returns true).static DecimalNodevalueOf(java.math.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
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, withArray, withObject
-
Methods inherited from class com.fasterxml.jackson.databind.JsonNode
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, properties, require, requiredAt, requiredAt, requireNonNull, size, textValue, with, withArray, withArray, withArray, withArrayProperty, withObject, withObject, withObject, withObjectProperty
-
Methods inherited from class com.fasterxml.jackson.databind.JsonSerializable.Base
isEmpty
-
-
-
-
Field Detail
-
ZERO
public static final DecimalNode ZERO
-
-
Method Detail
-
valueOf
public static DecimalNode valueOf(java.math.BigDecimal d)
-
asToken
public JsonToken asToken()
Description copied from class:BaseJsonNodeMethod that can be used for efficient type detection when using stream abstraction for traversing nodes. Will return the firstJsonTokenthat equivalent stream event would produce (for most nodes there is just one token but for structured/container types multiple)
-
numberType
public JsonParser.NumberType numberType()
Description copied from class:BaseJsonNodeReturns code that identifies type of underlying numeric value, if (and only if) node is a number node.- Specified by:
numberTypein interfaceTreeNode- Specified by:
numberTypein classNumericNode- Returns:
- Type of number contained, if any; or null if node does not contain numeric value.
-
isFloatingPointNumber
public boolean isFloatingPointNumber()
- Overrides:
isFloatingPointNumberin classJsonNode- Returns:
- True if this node represents a non-integral numeric JSON value
-
isBigDecimal
public boolean isBigDecimal()
- Overrides:
isBigDecimalin classJsonNode
-
canConvertToInt
public boolean canConvertToInt()
Description copied from class:JsonNodeMethod 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:
canConvertToIntin classNumericNode
-
canConvertToLong
public boolean canConvertToLong()
Description copied from class:JsonNodeMethod 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:
canConvertToLongin classNumericNode
-
canConvertToExactIntegral
public boolean canConvertToExactIntegral()
Description copied from class:JsonNodeMethod that can be used to check whether contained value is numeric (returns true forJsonNode.isNumber()) and can be losslessly converted to integral number (specifically,BigIntegerbut potentially others, seeJsonNode.canConvertToInt()andJsonNode.canConvertToInt()). Latter part allows floating-point numbers (for whichJsonNode.isFloatingPointNumber()returnstrue) that do not have fractional part. Note that "not-a-number" values ofdoubleandfloatwill returnfalseas they can not be converted to matching integral representations.- Overrides:
canConvertToExactIntegralin classJsonNode- Returns:
- True if the value is an actual number with no fractional part; false for non-numeric types, NaN representations of floating-point numbers, and floating-point numbers with fractional part.
-
numberValue
public java.lang.Number numberValue()
Description copied from class:JsonNodeReturns numeric value for this node, if and only if this node is numeric (JsonNode.isNumber()returns true); otherwise returns null- Specified by:
numberValuein classNumericNode- Returns:
- Number value this node contains, if any (null for non-number nodes).
-
shortValue
public short shortValue()
Description copied from class:JsonNodeReturns 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:
shortValuein classJsonNode- Returns:
- Short value this node contains, if any; 0 for non-number nodes.
-
intValue
public int intValue()
Description copied from class:JsonNodeReturns 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:
intValuein classNumericNode- Returns:
- Integer value this node contains, if any; 0 for non-number nodes.
-
longValue
public long longValue()
Description copied from class:JsonNodeReturns 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:
longValuein classNumericNode- Returns:
- Long value this node contains, if any; 0 for non-number nodes.
-
bigIntegerValue
public java.math.BigInteger bigIntegerValue()
Description copied from class:JsonNodeReturns integer value for this node (asBigInteger), if and only if this node is numeric (JsonNode.isNumber()returns true). For other types returnsBigInteger.ZERO.NOTE: In Jackson 2.x MAY throw
StreamConstraintsExceptionif the scale of the underlyingBigDecimalis too large to convert (NOTE: thrown "sneakily" in Jackson 2.x due to API compatibility restrictions)- Specified by:
bigIntegerValuein classNumericNode- Returns:
BigIntegervalue this node contains, if numeric node;BigInteger.ZEROfor non-number nodes.
-
floatValue
public float floatValue()
Description copied from class:JsonNodeReturns 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:
floatValuein classJsonNode- Returns:
- 32-bit float value this node contains, if any; 0.0 for non-number nodes.
-
doubleValue
public double doubleValue()
Description copied from class:JsonNodeReturns 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 withBigIntegervalues.- Specified by:
doubleValuein classNumericNode- Returns:
- 64-bit double value this node contains, if any; 0.0 for non-number nodes.
-
decimalValue
public java.math.BigDecimal decimalValue()
Description copied from class:JsonNodeReturns floating point value for this node (asBigDecimal), if and only if this node is numeric (JsonNode.isNumber()returns true). For other types returnsBigDecimal.ZERO.- Specified by:
decimalValuein classNumericNode- Returns:
BigDecimalvalue this node contains, if numeric node;BigDecimal.ZEROfor non-number nodes.
-
asText
public java.lang.String asText()
Description copied from class:JsonNodeMethod that will return a valid String representation of the container value, if the node is a value node (methodJsonNode.isValueNode()returns true), otherwise empty String.- Specified by:
asTextin classNumericNode
-
serialize
public final void serialize(JsonGenerator g, SerializerProvider provider) throws java.io.IOException
Description copied from class:BaseJsonNodeMethod called to serialize node instances using given generator.- Specified by:
serializein interfaceJsonSerializable- Specified by:
serializein classBaseJsonNode- Throws:
java.io.IOException
-
equals
public boolean equals(java.lang.Object o)
Description copied from class:JsonNodeEquality 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.
-
hashCode
public int hashCode()
- Specified by:
hashCodein classBaseJsonNode
-
-