- All Implemented Interfaces:
Serializable
,Iterable<JsonNode>
,TreeNode
,JacksonSerializable
- Direct Known Subclasses:
NumericFPNode
,NumericIntNode
- See Also:
-
Nested Class Summary
Nested classes/interfaces inherited from class tools.jackson.databind.JsonNode
JsonNode.OverwriteMode
Nested classes/interfaces inherited from interface tools.jackson.databind.JacksonSerializable
JacksonSerializable.Base
-
Field Summary
Fields inherited from class tools.jackson.databind.node.ValueNode
BD_MAX_INTEGER, BD_MAX_LONG, BD_MAX_SHORT, BD_MIN_INTEGER, BD_MIN_LONG, BD_MIN_SHORT, BI_MAX_INTEGER, BI_MAX_LONG, BI_MAX_SHORT, BI_MIN_INTEGER, BI_MIN_LONG, BI_MIN_SHORT, MISSING
Fields inherited from class tools.jackson.databind.node.BaseJsonNode
OPT_FALSE, OPT_TRUE
-
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionprotected abstract String
Method sub-classes should override if they can produceString
values viaBaseJsonNode.asString()
-- if not, returnnull
(in which case appropriate error will be thrown or default value returned).protected final String
Method for implementation classes to return a short description of contained value, to be used in error messages.abstract BigInteger
Method similar toJsonNode.bigIntegerValue()
but in addition to coercing Number values (same asJsonNode.bigIntegerValue()
), will also try to coerce a couple of additional types (or cases): JSON Floating-point numbers with fractions (ones without fractions are ok forJsonNode.bigIntegerValue()
) will be truncated to integer value (like withBigDecimal.toBigInteger()
)) JSON Strings that represent JSON Numbers ("stringified" numbers) JSON Null (converted to0
)) POJO nodes that contain Number valuesabstract BigInteger
asBigInteger
(BigInteger defaultValue) Method similar toJsonNode.asBigInteger()
, but that will return specifieddefaultValue
if this node cannot be converted toBigInteger
.abstract Optional<BigInteger>
Method similar toJsonNode.bigIntegerValue()
, but that will return empty (Optional.empty()
) if this node cannot be converted to JavaBigInteger
.abstract BigDecimal
Method that will try to access value of this node as aBigDecimal
: but if node value cannot be expressed exactly as aBigDecimal
, aJsonNodeException
will be thrown.abstract BigDecimal
asDecimal
(BigDecimal defaultValue) Method similar toJsonNode.asDecimal()
, but that will returndefaultValue
if this node cannot be coerced to JavaBigDecimal
.abstract Optional<BigDecimal>
Method similar toJsonNode.asDecimal()
, but that will return emptyOptional
(Optional.empty()
) if this node cannot be coerced toBigDecimal
.abstract double
asDouble()
Method similar toJsonNode.doubleValue()
but in addition to coercing Number values will also try coerce couple of additional types: JSON String that represents JSON Numbers ("stringified" numbers) JSON Null (converted to0.0d
) POJO nodes that contain Number valuesabstract double
asDouble
(double defaultValue) Method similar toJsonNode.asDouble()
, but that will returndefaultValue
if this node cannot be coerced todouble
.abstract OptionalDouble
Method similar toJsonNode.asDouble()
, but that will return (OptionalDouble.empty()
) if this node cannot be coerced todouble
.abstract float
asFloat()
Method similar toJsonNode.floatValue()
but in addition to coercing Number values will also try coerce couple of additional types: JSON String that represents JSON Numbers ("stringified" numbers) JSON Null (converted to0.0f
) POJO nodes that contain Number valuesabstract float
asFloat
(float defaultValue) Method similar toJsonNode.asFloat()
, but that will returndefaultValue
if this node cannot be coerced tofloat
.Method similar toJsonNode.asFloat()
, but that will return (Optional.empty()
) if this node cannot be coerced tofloat
.abstract int
asInt()
Method similar toJsonNode.intValue()
but in addition to coercing Number values (same asJsonNode.intValue()
), will also try to coerce a couple of additional types (or cases): JSON Floating-point numbers with fractions (ones without fractions are ok forJsonNode.intValue()
) will be truncated toint
(if (and only if) they fit inint
range).abstract int
asInt
(int defaultValue) Method similar toJsonNode.intValue()
, but that will return specifieddefaultValue
if this node cannot be converted toint
.abstract OptionalInt
asIntOpt()
Method similar toJsonNode.asInt()
, but that will return (OptionalInt.empty()
) if this node cannot be coerced toint
.abstract long
asLong()
Method similar toJsonNode.longValue()
but in addition to coercing Number values (same asJsonNode.longValue()
), will also try to coerce a couple of additional types (or cases): JSON Floating-point numbers with fractions (ones without fractions are ok forJsonNode.longValue()
) will be truncated tolong
(if (and only if) they fit inlong
range).abstract long
asLong
(long defaultValue) Method similar toJsonNode.asLong()
, but that will return specifieddefaultValue
if this node cannot be coerced tolong
(instead of throwing an exception).abstract OptionalLong
Method similar toJsonNode.asLong()
, but that will return (OptionalLong.empty()
) if this node cannot be coerced tolong
.abstract short
asShort()
Method similar toJsonNode.shortValue()
but in addition to coercing Number values (same asJsonNode.shortValue()
), will also try to coerce a couple of additional types (or cases): JSON Floating-point numbers with fractions (ones without fractions are ok forJsonNode.shortValue()
) will be truncated toshort
(if (and only if) they fit inshort
range).abstract short
asShort
(short defaultValue) Method similar toJsonNode.shortValue()
, but that will return specifieddefaultValue
if this node cannot be converted toshort
.Method similar toJsonNode.asShort()
, but that will return (Optional.empty()
) if this node cannot be coerced toshort
.abstract BigInteger
Method that will try to access value of this node as aBigInteger
, but if node value cannot be expressed exactly as aBigInteger
, aJsonNodeException
will be thrown.abstract BigInteger
bigIntegerValue
(BigInteger defaultValue) Method similar toJsonNode.bigIntegerValue()
, but that will return specifieddefaultValue
if this node cannot be converted to JavaBigInteger
.abstract Optional<BigInteger>
Method similar toJsonNode.bigIntegerValue()
, but that will return empty (Optional.empty()
) if this node cannot be converted to JavaBigInteger
.abstract boolean
Method that can be used to check whether this node is a numeric node (JsonNode.isNumber()
would return true) AND can be converted without loss toint
(that is, its value fits in Java's 32-bit signed integer type,int
and if it is a floating-point number, it does not have fractional part).abstract boolean
Method that can be used to check whether this node is a numeric node (JsonNode.isNumber()
would return true) AND can be converted without loss tolong
(that is, its value fits in Java's 64-bit signed integer type,long
and if it is a floating-point number, it does not have fractional part).abstract boolean
Method that can be used to check whether this node is a numeric node (JsonNode.isNumber()
would return true) AND can be converted without loss toshort
(that is, its value fits in Java's 16-bit signed integer type,short
and if it is a floating-point number, it does not have fractional part).abstract BigDecimal
Method that will try to access value of this node as a JavaBigDecimal
: but if node value cannot be expressed exactly as aBigDecimal
, aJsonNodeException
will be thrown.abstract BigDecimal
decimalValue
(BigDecimal defaultValue) Method similar toJsonNode.decimalValue()
, but that will returndefaultValue
if this node cannot be coerced to JavaBigDecimal
.abstract Optional<BigDecimal>
Method similar toJsonNode.decimalValue()
, but that will return emptyOptional
(Optional.empty()
) if this node cannot be coerced toBigDecimal
.deepCopy()
All current value nodes are immutable, so we can just return them as is.abstract double
Method that will try to access value of this node as adouble
: but if node value cannot be expressed exactly as adouble
, aJsonNodeException
will be thrown.abstract double
doubleValue
(double defaultValue) Method similar toJsonNode.doubleValue()
, but that will return specifieddefaultValue
if this node cannot be converted todouble
.abstract OptionalDouble
Method similar toJsonNode.doubleValue()
, but that will return emptyOptionalLong
(OptionalDouble.empty()
) if this node cannot be converted to Javadouble
.abstract float
Method that will try to access value of this node as a Javafloat
: but if node value cannot be expressed exactly as afloat
, aJsonNodeException
will be thrown.abstract float
floatValue
(float defaultValue) Method similar toJsonNode.floatValue()
, but that will return specifieddefaultValue
if this node cannot be converted tofloat
.Method similar toJsonNode.floatValue()
, but that will return emptyOptional<Float>
(Optional.empty()
) if this node cannot be converted to Javafloat
.final JsonNodeType
Return the type of this nodeabstract int
intValue()
Method that will try to access value of this node as a Javaint
: but if node value cannot be expressed exactly as anint
, aJsonNodeException
will be thrown.abstract int
intValue
(int defaultValue) Method similar toJsonNode.intValue()
, but that will return specifieddefaultValue
if this node cannot be converted to Javaint
.abstract OptionalInt
Method similar toJsonNode.intValue()
, but that will return emptyOptionalInt
(OptionalInt.empty()
) if this node cannot be converted to Javaint
.abstract boolean
isNaN()
Convenience method for checking whether this node is aFloatNode
orDoubleNode
that contains "not-a-number" (NaN) value.abstract long
Method that will try to access value of this node as a Javalong
: but if node value cannot be expressed exactly as along
, aJsonNodeException
will be thrown.abstract long
longValue
(long defaultValue) Method similar toJsonNode.longValue()
, but that will return specifieddefaultValue
if this node cannot be converted tolong
.abstract OptionalLong
Method similar toJsonNode.longValue()
, but that will return emptyOptionalLong
(OptionalLong.empty()
) if this node cannot be converted to Javalong
.abstract JsonParser.NumberType
Returns code that identifies type of underlying numeric value, if (and only if) node is a number node.abstract Number
Method that will try to access value of this node asNumber
that accurately represents its value, if (and only if) this is a number node (returnstrue
forJsonNode.isNumber()
).abstract short
Method that will try to access value of this node as 16-bit signed integer value (Javashort
): but if node value cannot be expressed exactly as ashort
, aJsonNodeException
will be thrown.abstract short
shortValue
(short defaultValue) Method similar toJsonNode.shortValue()
, but that will return specifieddefaultValue
if this node cannot be converted to Javashort
.Method similar toJsonNode.shortValue()
, but that will return emptyOptional<Short>
(Optional.empty()
) if this node cannot be converted to Javashort
.Methods inherited from class tools.jackson.databind.node.ValueNode
_at, asToken, findParent, findParents, findValue, findValues, findValuesAsString, get, get, has, has, hasNonNull, hasNonNull, isEmpty, path, path, serializeWithType
Methods inherited from class tools.jackson.databind.node.BaseJsonNode
_asBoolean, _jsonPointerIfValid, _reportBigDecimalCoercionNaNFail, _reportBigIntegerCoercionFractionFail, _reportBigIntegerCoercionNaNFail, _reportCoercionFail, _reportDoubleCoercionRangeFail, _reportFloatCoercionRangeFail, _reportIntCoercionFractionFail, _reportIntCoercionNaNFail, _reportIntCoercionRangeFail, _reportLongCoercionFractionFail, _reportLongCoercionNaNFail, _reportLongCoercionRangeFail, _reportShortCoercionFractionFail, _reportShortCoercionRangeFail, _reportWrongNodeType, _withArray, _withObject, _withXxxMayReplace, _withXxxVerifyReplace, asBoolean, asBoolean, asBooleanOpt, asString, asString, asStringOpt, binaryValue, booleanValue, booleanValue, booleanValueOpt, findPath, hashCode, isEmbeddedValue, isMissingNode, required, required, serialize, stringValue, stringValue, stringValueOpt, toPrettyString, toString, traverse, withArray, withObject
Methods inherited from class tools.jackson.databind.JsonNode
_reportRequiredViolation, _reportUnsupportedOperation, _this, asOptional, asText, asText, at, at, canConvertToExactIntegral, equals, equals, findParents, findValues, findValuesAsString, forEachEntry, isArray, isBigDecimal, isBigInteger, isBinary, isBoolean, isContainer, isDouble, isFloat, isFloatingPointNumber, isInt, isIntegralNumber, isLong, isNull, isNumber, isObject, isPojo, isShort, isString, isTextual, isValueNode, iterator, optional, optional, properties, propertyNames, propertyStream, require, requiredAt, requiredAt, requireNonNull, size, spliterator, textValue, values, valueStream, withArray, withArray, withArray, withArrayProperty, withObject, withObject, withObject, withObjectProperty
Methods inherited from class tools.jackson.databind.JacksonSerializable.Base
isEmpty
-
Constructor Details
-
NumericNode
protected NumericNode()
-
-
Method Details
-
getNodeType
Description copied from class:JsonNode
Return the type of this node- Specified by:
getNodeType
in classJsonNode
- Returns:
- the node type as a
JsonNodeType
enum value
-
deepCopy
Description copied from class:ValueNode
All current value nodes are immutable, so we can just return them as is. -
_valueDesc
Description copied from class:BaseJsonNode
Method for implementation classes to return a short description of contained value, to be used in error messages.- Specified by:
_valueDesc
in classBaseJsonNode
-
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 interfaceTreeNode
- Overrides:
numberType
in classBaseJsonNode
-
numberValue
Description copied from class:JsonNode
Method that will try to access value of this node asNumber
that accurately represents its value, if (and only if) this is a number node (returnstrue
forJsonNode.isNumber()
). If this node is NOT a number node, aJsonNodeException
will be thrown.- Overrides:
numberValue
in classBaseJsonNode
- Returns:
- Number value this node contains, if numeric node
-
shortValue
public abstract short shortValue()Description copied from class:JsonNode
Method that will try to access value of this node as 16-bit signed integer value (Javashort
): but if node value cannot be expressed exactly as ashort
, aJsonNodeException
will be thrown. Access works for following cases:- JSON Integer values that fit in Java 16-bit signed
short
range - JSON Floating-point values that fit in Java 16-bit signed
short
range AND do not have fractional part.
- Overrides:
shortValue
in classBaseJsonNode
- Returns:
Short
value this node represents, if possible to accurately represent
- JSON Integer values that fit in Java 16-bit signed
-
shortValue
public abstract short shortValue(short defaultValue) Description copied from class:JsonNode
Method similar toJsonNode.shortValue()
, but that will return specifieddefaultValue
if this node cannot be converted to Javashort
.- Overrides:
shortValue
in classBaseJsonNode
- Parameters:
defaultValue
- Value to return if this node cannot be converted to Javashort
- Returns:
- Java
short
value this node represents, if possible to accurately represent;defaultValue
otherwise
-
shortValueOpt
Description copied from class:JsonNode
Method similar toJsonNode.shortValue()
, but that will return emptyOptional<Short>
(Optional.empty()
) if this node cannot be converted to Javashort
.- Overrides:
shortValueOpt
in classBaseJsonNode
- Returns:
- Java
short
value this node represents, asOptional<Short>
, if possible to accurately represent;Optional.empty()
otherwise
-
asShort
public abstract short asShort()Description copied from class:JsonNode
Method similar toJsonNode.shortValue()
but in addition to coercing Number values (same asJsonNode.shortValue()
), will also try to coerce a couple of additional types (or cases):- JSON Floating-point numbers with fractions (ones without fractions
are ok for
JsonNode.shortValue()
) will be truncated toshort
(if (and only if) they fit inshort
range). - JSON Strings that represent JSON Numbers ("stringified" numbers)
- JSON Null (converted to
0
)) - POJO nodes that contain Number values
- Overrides:
asShort
in classBaseJsonNode
- Returns:
short
value this node represents, if possible to accurately represent
- JSON Floating-point numbers with fractions (ones without fractions
are ok for
-
asShort
public abstract short asShort(short defaultValue) Description copied from class:JsonNode
Method similar toJsonNode.shortValue()
, but that will return specifieddefaultValue
if this node cannot be converted toshort
.- Overrides:
asShort
in classBaseJsonNode
- Parameters:
defaultValue
- Value to return if this node cannot be converted toshort
- Returns:
short
value this node represents, if possible to accurately represent;defaultValue
otherwise
-
asShortOpt
Description copied from class:JsonNode
Method similar toJsonNode.asShort()
, but that will return (Optional.empty()
) if this node cannot be coerced toshort
.- Overrides:
asShortOpt
in classBaseJsonNode
- Returns:
Optional<Short>
value this node represents, if possible to accurately represent;Optional.empty()
otherwise
-
intValue
public abstract int intValue()Description copied from class:JsonNode
Method that will try to access value of this node as a Javaint
: but if node value cannot be expressed exactly as anint
, aJsonNodeException
will be thrown. Access works for following cases:- JSON Integer values that fit in Java 32-bit signed
int
range - JSON Floating-point values that fit in Java 32-bit signed
int
range AND do not have fractional part.
NOTE: for more lenient conversions, use
JsonNode.asInt()
- Overrides:
intValue
in classBaseJsonNode
- Returns:
Int
value this node represents, if possible to accurately represent
- JSON Integer values that fit in Java 32-bit signed
-
intValue
public abstract int intValue(int defaultValue) Description copied from class:JsonNode
Method similar toJsonNode.intValue()
, but that will return specifieddefaultValue
if this node cannot be converted to Javaint
.- Overrides:
intValue
in classBaseJsonNode
- Parameters:
defaultValue
- Value to return if this node cannot be converted to Javaint
- Returns:
- Java
int
value this node represents, if possible to accurately represent;defaultValue
otherwise
-
intValueOpt
Description copied from class:JsonNode
Method similar toJsonNode.intValue()
, but that will return emptyOptionalInt
(OptionalInt.empty()
) if this node cannot be converted to Javaint
.- Overrides:
intValueOpt
in classBaseJsonNode
- Returns:
- Java
int
value this node represents, asOptionalInt
, if possible to accurately represent;OptionalInt.empty()
otherwise
-
asInt
public abstract int asInt()Description copied from class:JsonNode
Method similar toJsonNode.intValue()
but in addition to coercing Number values (same asJsonNode.intValue()
), will also try to coerce a couple of additional types (or cases):- JSON Floating-point numbers with fractions (ones without fractions
are ok for
JsonNode.intValue()
) will be truncated toint
(if (and only if) they fit inint
range). - JSON Strings that represent JSON Numbers ("stringified" numbers)
- JSON Null (converted to
0
)) - POJO nodes that contain Number values
- Overrides:
asInt
in classBaseJsonNode
- Returns:
int
value this node represents, if possible to accurately represent
- JSON Floating-point numbers with fractions (ones without fractions
are ok for
-
asInt
public abstract int asInt(int defaultValue) Description copied from class:JsonNode
Method similar toJsonNode.intValue()
, but that will return specifieddefaultValue
if this node cannot be converted toint
.- Overrides:
asInt
in classBaseJsonNode
- Parameters:
defaultValue
- Value to return if this node cannot be converted toint
- Returns:
int
value this node represents, if possible to accurately represent;defaultValue
otherwise
-
asIntOpt
Description copied from class:JsonNode
Method similar toJsonNode.asInt()
, but that will return (OptionalInt.empty()
) if this node cannot be coerced toint
.- Overrides:
asIntOpt
in classBaseJsonNode
- Returns:
OptionalInt
value this node represents, if possible to accurately represent;OptionalInt.empty()
otherwise
-
longValue
public abstract long longValue()Description copied from class:JsonNode
Method that will try to access value of this node as a Javalong
: but if node value cannot be expressed exactly as along
, aJsonNodeException
will be thrown. Access works for following cases:- JSON Integer values that fit in Java 64-bit signed
long
range - JSON Floating-point values that fit in Java 64-bit signed
long
range AND do not have fractional part.
NOTE: for more lenient conversions, use
JsonNode.asLong()
- Overrides:
longValue
in classBaseJsonNode
- Returns:
Long
value this node represents, if possible to accurately represent
- JSON Integer values that fit in Java 64-bit signed
-
longValue
public abstract long longValue(long defaultValue) Description copied from class:JsonNode
Method similar toJsonNode.longValue()
, but that will return specifieddefaultValue
if this node cannot be converted tolong
.- Overrides:
longValue
in classBaseJsonNode
- Parameters:
defaultValue
- Value to return if this node cannot be converted tolong
- Returns:
long
value this node represents, if possible to accurately represent;defaultValue
otherwise
-
longValueOpt
Description copied from class:JsonNode
Method similar toJsonNode.longValue()
, but that will return emptyOptionalLong
(OptionalLong.empty()
) if this node cannot be converted to Javalong
.- Overrides:
longValueOpt
in classBaseJsonNode
- Returns:
- Java
long
value this node represents, asOptionalLong
, if possible to accurately represent;OptionalLong.empty()
otherwise
-
asLong
public abstract long asLong()Description copied from class:JsonNode
Method similar toJsonNode.longValue()
but in addition to coercing Number values (same asJsonNode.longValue()
), will also try to coerce a couple of additional types (or cases):- JSON Floating-point numbers with fractions (ones without fractions
are ok for
JsonNode.longValue()
) will be truncated tolong
(if (and only if) they fit inlong
range). - JSON Strings that represent JSON Numbers ("stringified" numbers)
- JSON Null (converted to
0
)) - POJO nodes that contain Number values
- Overrides:
asLong
in classBaseJsonNode
- Returns:
long
value this node represents, if possible to accurately represent
- JSON Floating-point numbers with fractions (ones without fractions
are ok for
-
asLong
public abstract long asLong(long defaultValue) Description copied from class:JsonNode
Method similar toJsonNode.asLong()
, but that will return specifieddefaultValue
if this node cannot be coerced tolong
(instead of throwing an exception).- Overrides:
asLong
in classBaseJsonNode
- Parameters:
defaultValue
- Value to return if this node cannot be coerced tolong
- Returns:
long
value this node represents, if possible to accurately represent;defaultValue
otherwise
-
asLongOpt
Description copied from class:JsonNode
Method similar toJsonNode.asLong()
, but that will return (OptionalLong.empty()
) if this node cannot be coerced tolong
.- Overrides:
asLongOpt
in classBaseJsonNode
- Returns:
OptionalLong
value this node represents (or can be coerced to),OptionalLong.empty()
otherwise
-
bigIntegerValue
Description copied from class:JsonNode
Method that will try to access value of this node as aBigInteger
, but if node value cannot be expressed exactly as aBigInteger
, aJsonNodeException
will be thrown. Access works for following cases:- JSON Integer values
- JSON Floating-point values that do not have fractional part.
- Overrides:
bigIntegerValue
in classBaseJsonNode
- Returns:
BigInteger
value this node represents, if possible to accurately represent
-
bigIntegerValue
Description copied from class:JsonNode
Method similar toJsonNode.bigIntegerValue()
, but that will return specifieddefaultValue
if this node cannot be converted to JavaBigInteger
.- Overrides:
bigIntegerValue
in classBaseJsonNode
- Parameters:
defaultValue
- Value to return if this node cannot be converted to JavaBigInteger
- Returns:
- Java
BigInteger
value this node represents, if possible to accurately represent;defaultValue
otherwise
-
bigIntegerValueOpt
Description copied from class:JsonNode
Method similar toJsonNode.bigIntegerValue()
, but that will return empty (Optional.empty()
) if this node cannot be converted to JavaBigInteger
.- Overrides:
bigIntegerValueOpt
in classBaseJsonNode
- Returns:
- Java
BigInteger
value this node represents, asOptional<BigInteger>
, if possible to accurately represent;Optional.empty()
otherwise
-
asBigInteger
Description copied from class:JsonNode
Method similar toJsonNode.bigIntegerValue()
but in addition to coercing Number values (same asJsonNode.bigIntegerValue()
), will also try to coerce a couple of additional types (or cases):- JSON Floating-point numbers with fractions (ones without fractions
are ok for
JsonNode.bigIntegerValue()
) will be truncated to integer value (like withBigDecimal.toBigInteger()
)) - JSON Strings that represent JSON Numbers ("stringified" numbers)
- JSON Null (converted to
0
)) - POJO nodes that contain Number values
- Overrides:
asBigInteger
in classBaseJsonNode
- Returns:
BigInteger
value this node represents, if possible to accurately convert;defaultValue
otherwise
- JSON Floating-point numbers with fractions (ones without fractions
are ok for
-
asBigInteger
Description copied from class:JsonNode
Method similar toJsonNode.asBigInteger()
, but that will return specifieddefaultValue
if this node cannot be converted toBigInteger
.- Overrides:
asBigInteger
in classBaseJsonNode
- Parameters:
defaultValue
- Value to return if this node cannot be converted toBigInteger
- Returns:
BigInteger
value this node represents, if possible to accurately convert;defaultValue
otherwise
-
asBigIntegerOpt
Description copied from class:JsonNode
Method similar toJsonNode.bigIntegerValue()
, but that will return empty (Optional.empty()
) if this node cannot be converted to JavaBigInteger
.- Overrides:
asBigIntegerOpt
in classBaseJsonNode
- Returns:
BigInteger
value this node represents, asOptional<BigInteger>
, if possible to accurately represent;Optional.empty()
otherwise.
-
floatValue
public abstract float floatValue()Description copied from class:JsonNode
Method that will try to access value of this node as a Javafloat
: but if node value cannot be expressed exactly as afloat
, aJsonNodeException
will be thrown. Access works for following cases:- JSON Floating-point values that fit in Java 32-bit
double
range - JSON Integer values that fit in Java 32-bit
double
range
- Overrides:
floatValue
in classBaseJsonNode
- Returns:
Float
value this node represents, if possible to accurately represent
- JSON Floating-point values that fit in Java 32-bit
-
floatValue
public abstract float floatValue(float defaultValue) Description copied from class:JsonNode
Method similar toJsonNode.floatValue()
, but that will return specifieddefaultValue
if this node cannot be converted tofloat
.- Overrides:
floatValue
in classBaseJsonNode
- Parameters:
defaultValue
- Value to return if this node cannot be converted tofloat
- Returns:
float
value this node represents, if possible to accurately represent;defaultValue
otherwise
-
floatValueOpt
Description copied from class:JsonNode
Method similar toJsonNode.floatValue()
, but that will return emptyOptional<Float>
(Optional.empty()
) if this node cannot be converted to Javafloat
.- Overrides:
floatValueOpt
in classBaseJsonNode
- Returns:
- Java
float
value this node represents, asOptional<Float>
, if possible to accurately represent;Optional.empty()
otherwise
-
asFloat
public abstract float asFloat()Description copied from class:JsonNode
Method similar toJsonNode.floatValue()
but in addition to coercing Number values will also try coerce couple of additional types:- JSON String that represents JSON Numbers ("stringified" numbers)
- JSON Null (converted to
0.0f
) - POJO nodes that contain Number values
- Overrides:
asFloat
in classBaseJsonNode
- Returns:
float
value this node represents, if possible to accurately represent
-
asFloat
public abstract float asFloat(float defaultValue) Description copied from class:JsonNode
Method similar toJsonNode.asFloat()
, but that will returndefaultValue
if this node cannot be coerced tofloat
.- Overrides:
asFloat
in classBaseJsonNode
- Returns:
float
value this node represents, if possible to accurately represent;defaultValue
otherwise
-
asFloatOpt
Description copied from class:JsonNode
Method similar toJsonNode.asFloat()
, but that will return (Optional.empty()
) if this node cannot be coerced tofloat
.- Overrides:
asFloatOpt
in classBaseJsonNode
- Returns:
Optional<Float>
value this node represents, if possible to accurately represent;Optional.empty()
otherwise
-
doubleValue
public abstract double doubleValue()Description copied from class:JsonNode
Method that will try to access value of this node as adouble
: but if node value cannot be expressed exactly as adouble
, aJsonNodeException
will be thrown. Access works for following cases:- JSON Floating-point values that fit in Java 64-bit
double
range - JSON Integer values that fit in Java 64-bit
double
range
NOTE: for more lenient conversions, use
JsonNode.asDouble()
- Overrides:
doubleValue
in classBaseJsonNode
- Returns:
Double
value this node represents, if possible to accurately represent
- JSON Floating-point values that fit in Java 64-bit
-
doubleValue
public abstract double doubleValue(double defaultValue) Description copied from class:JsonNode
Method similar toJsonNode.doubleValue()
, but that will return specifieddefaultValue
if this node cannot be converted todouble
.- Overrides:
doubleValue
in classBaseJsonNode
- Parameters:
defaultValue
- Value to return if this node cannot be converted todouble
- Returns:
double
value this node represents, if possible to accurately represent;defaultValue
otherwise
-
doubleValueOpt
Description copied from class:JsonNode
Method similar toJsonNode.doubleValue()
, but that will return emptyOptionalLong
(OptionalDouble.empty()
) if this node cannot be converted to Javadouble
.- Overrides:
doubleValueOpt
in classBaseJsonNode
- Returns:
- Java
double
value this node represents, asOptionalDouble
, if possible to accurately represent;OptionalDouble.empty()
otherwise
-
asDouble
public abstract double asDouble()Description copied from class:JsonNode
Method similar toJsonNode.doubleValue()
but in addition to coercing Number values will also try coerce couple of additional types:- JSON String that represents JSON Numbers ("stringified" numbers)
- JSON Null (converted to
0.0d
) - POJO nodes that contain Number values
- Overrides:
asDouble
in classBaseJsonNode
- Returns:
double
value this node represents, if possible to accurately represent
-
asDouble
public abstract double asDouble(double defaultValue) Description copied from class:JsonNode
Method similar toJsonNode.asDouble()
, but that will returndefaultValue
if this node cannot be coerced todouble
.- Overrides:
asDouble
in classBaseJsonNode
- Returns:
double
value this node represents, if possible to accurately represent;defaultValue
otherwise
-
asDoubleOpt
Description copied from class:JsonNode
Method similar toJsonNode.asDouble()
, but that will return (OptionalDouble.empty()
) if this node cannot be coerced todouble
.- Overrides:
asDoubleOpt
in classBaseJsonNode
- Returns:
OptionalDouble
value this node represents, if possible to accurately represent;OptionalDouble.empty()
otherwise
-
decimalValue
Description copied from class:JsonNode
Method that will try to access value of this node as a JavaBigDecimal
: but if node value cannot be expressed exactly as aBigDecimal
, aJsonNodeException
will be thrown. Access works for following cases:- All JSON Number values
NOTE: for more lenient conversions, use
JsonNode.asDecimal()
- Overrides:
decimalValue
in classBaseJsonNode
- Returns:
BigDecimal
value this node represents, if possible to accurately represent
-
decimalValue
Description copied from class:JsonNode
Method similar toJsonNode.decimalValue()
, but that will returndefaultValue
if this node cannot be coerced to JavaBigDecimal
.- Overrides:
decimalValue
in classBaseJsonNode
- Returns:
BigDecimal
value this node represents, if possible to accurately represent;defaultValue
otherwise
-
decimalValueOpt
Description copied from class:JsonNode
Method similar toJsonNode.decimalValue()
, but that will return emptyOptional
(Optional.empty()
) if this node cannot be coerced toBigDecimal
.- Overrides:
decimalValueOpt
in classBaseJsonNode
- Returns:
- Java
BigDecimal
value this node represents, asOptional<BigDecimal>
, if possible to accurately represent;Optional.empty()
otherwise
-
asDecimal
Description copied from class:JsonNode
Method that will try to access value of this node as aBigDecimal
: but if node value cannot be expressed exactly as aBigDecimal
, aJsonNodeException
will be thrown. Access works for following cases:- JSON Floating-point values (but not "NaN" or "Infinity")
- JSON Integer values
- JSON String that represents JSON Numbers ("stringified" numbers)
- JSON Null (converted to
BigDecimal.ZERO
)) - POJO nodes that contain Number values
- Overrides:
asDecimal
in classBaseJsonNode
- Returns:
BigDecimal
value this node represents, if possible to accurately represent
-
asDecimal
Description copied from class:JsonNode
Method similar toJsonNode.asDecimal()
, but that will returndefaultValue
if this node cannot be coerced to JavaBigDecimal
.- Overrides:
asDecimal
in classBaseJsonNode
- Returns:
BigDecimal
value this node represents, if possible to accurately represent;defaultValue
otherwise
-
asDecimalOpt
Description copied from class:JsonNode
Method similar toJsonNode.asDecimal()
, but that will return emptyOptional
(Optional.empty()
) if this node cannot be coerced toBigDecimal
.- Overrides:
asDecimalOpt
in classBaseJsonNode
- Returns:
- Java
BigDecimal
value this node represents, asOptional<BigDecimal>
, if possible to accurately represent;Optional.empty()
otherwise
-
canConvertToShort
public abstract boolean canConvertToShort()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 can be converted without loss toshort
(that is, its value fits in Java's 16-bit signed integer type,short
and if it is a floating-point number, it does not have fractional part).NOTE: this method does not consider possible value type conversion from non-number types like JSON String into Number; so even if this method returns false, it is possible that
JsonNode.asShort()
could still succeed.- Overrides:
canConvertToShort
in classJsonNode
-
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 can be converted without loss toint
(that is, its value fits in Java's 32-bit signed integer type,int
and if it is a floating-point number, it does not have fractional part).NOTE: this method does not consider possible value type conversion from non-number types like JSON String into Number; so even if this method returns false, it is possible that
JsonNode.asInt()
could still succeed.- Overrides:
canConvertToInt
in classJsonNode
-
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 can be converted without loss tolong
(that is, its value fits in Java's 64-bit signed integer type,long
and if it is a floating-point number, it does not have fractional part).NOTE: this method does not consider possible value type conversion from non-number types like JSON String into Number; so even if this method returns false, it is possible that
JsonNode.asLong()
could still succeed.- Overrides:
canConvertToLong
in classJsonNode
-
_asString
Description copied from class:BaseJsonNode
Method sub-classes should override if they can produceString
values viaBaseJsonNode.asString()
-- if not, returnnull
(in which case appropriate error will be thrown or default value returned).- Overrides:
_asString
in classBaseJsonNode
- Returns:
- Coerced value if possible; otherwise
null
to indicate this node cannot be coerced.
-
isNaN
public abstract boolean isNaN()Convenience method for checking whether this node is aFloatNode
orDoubleNode
that contains "not-a-number" (NaN) value.
-