public class DecimalNode extends NumericNode
JsonNode.OverwriteMode
JsonSerializable.Base
Modifier and Type | Field and Description |
---|---|
protected BigDecimal |
_value |
static DecimalNode |
ZERO |
Constructor and Description |
---|
DecimalNode(BigDecimal v) |
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. |
com.fasterxml.jackson.core.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
BigInteger ), if and only if
this node is numeric (JsonNode.isNumber() returns true). |
boolean |
canConvertToExactIntegral()
Method that can be used to check whether contained value
is numeric (returns true for
JsonNode.isNumber() ) and
can be losslessly converted to integral number (specifically,
BigInteger but potentially others, see
JsonNode.canConvertToInt() and JsonNode.canConvertToInt() ). |
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). |
com.fasterxml.jackson.core.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(com.fasterxml.jackson.core.JsonGenerator g,
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) |
asDouble, asDouble, asInt, asInt, asLong, asLong, getNodeType, isNaN
_at, deepCopy, findParent, findParents, findValue, findValues, findValuesAsText, get, get, has, has, hasNonNull, hasNonNull, isEmpty, path, path, serializeWithType
_bigIntFromBigDec, _jsonPointerIfValid, _reportWrongNodeOperation, _reportWrongNodeType, _withArray, _withObject, _withXxxMayReplace, _withXxxVerifyReplace, findPath, required, required, toPrettyString, toString, traverse, traverse, withArray, withObject
_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, properties, require, requiredAt, requiredAt, requireNonNull, size, textValue, with, withArray, withArray, withArray, withArrayProperty, withObject, withObject, withObject, withObjectProperty
isEmpty
clone, finalize, getClass, notify, notifyAll, wait, wait, wait
forEach, spliterator
public static final DecimalNode ZERO
protected final BigDecimal _value
public DecimalNode(BigDecimal v)
public static DecimalNode valueOf(BigDecimal d)
public com.fasterxml.jackson.core.JsonToken asToken()
BaseJsonNode
JsonToken
that equivalent
stream event would produce (for most nodes there is just
one token but for structured/container types multiple)public com.fasterxml.jackson.core.JsonParser.NumberType numberType()
BaseJsonNode
numberType
in interface com.fasterxml.jackson.core.TreeNode
numberType
in class NumericNode
public boolean isFloatingPointNumber()
isFloatingPointNumber
in class JsonNode
public boolean isBigDecimal()
isBigDecimal
in class JsonNode
public boolean canConvertToInt()
JsonNode
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.
canConvertToInt
in class NumericNode
public boolean canConvertToLong()
JsonNode
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.
canConvertToLong
in class NumericNode
public boolean canConvertToExactIntegral()
JsonNode
JsonNode.isNumber()
) and
can be losslessly converted to integral number (specifically,
BigInteger
but potentially others, see
JsonNode.canConvertToInt()
and JsonNode.canConvertToInt()
).
Latter part allows floating-point numbers
(for which JsonNode.isFloatingPointNumber()
returns true
)
that do not have fractional part.
Note that "not-a-number" values of double
and float
will return false
as they can not be converted to matching
integral representations.canConvertToExactIntegral
in class JsonNode
public Number numberValue()
JsonNode
JsonNode.isNumber()
returns true); otherwise
returns nullnumberValue
in class NumericNode
public short shortValue()
JsonNode
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.shortValue
in class JsonNode
public int intValue()
JsonNode
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.intValue
in class NumericNode
public long longValue()
JsonNode
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.longValue
in class NumericNode
public BigInteger bigIntegerValue()
JsonNode
BigInteger
), if and only if
this node is numeric (JsonNode.isNumber()
returns true). For other
types returns BigInteger.ZERO
.
NOTE: In Jackson 2.x MAY throw StreamConstraintsException
if the scale of the underlying BigDecimal
is too large to convert (NOTE: thrown
"sneakily" in Jackson 2.x due to API compatibility restrictions)
bigIntegerValue
in class NumericNode
BigInteger
value this node contains, if numeric node; BigInteger.ZERO
for non-number nodes.public float floatValue()
JsonNode
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` valuesfloatValue
in class JsonNode
public double doubleValue()
JsonNode
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.doubleValue
in class NumericNode
public BigDecimal decimalValue()
JsonNode
BigDecimal
), if and only if
this node is numeric (JsonNode.isNumber()
returns true). For other
types returns BigDecimal.ZERO
.decimalValue
in class NumericNode
BigDecimal
value this node contains, if numeric node; BigDecimal.ZERO
for non-number nodes.public String asText()
JsonNode
JsonNode.isValueNode()
returns true),
otherwise empty String.asText
in class NumericNode
public final void serialize(com.fasterxml.jackson.core.JsonGenerator g, SerializerProvider provider) throws IOException
BaseJsonNode
serialize
in interface JsonSerializable
serialize
in class BaseJsonNode
IOException
public boolean equals(Object o)
JsonNode
Note: marked as abstract to ensure all implementation
classes define it properly and not rely on definition
from Object
.
public int hashCode()
hashCode
in class BaseJsonNode
Copyright © 2008–2024 FasterXML. All rights reserved.