Class JsonValue
- All Implemented Interfaces:
Serializable
- Direct Known Subclasses:
JsonArray
,JsonObject
The literals true, false, and null are
represented by the constants Json.TRUE
, Json.FALSE
, and Json.NULL
.
JSON objects and arrays are represented by the subtypes
JsonObject
and JsonArray
. Instances of these types can be created using the public constructors of these classes.
Instances that represent JSON numbers, strings and
boolean values can be created using the static factory methods
Json.value(String)
, Json.value(long)
, Json.value(double)
, etc.
In order to find out whether an instance of this class is of a certain type, the methods
isObject()
, isArray()
, isString()
, isNumber()
etc. can be used.
If the type of a JSON value is known, the methods asObject()
, asArray()
, asString()
,
asInt()
, etc. can be used to get this value directly in the appropriate target type.
This class is not supposed to be extended by clients.
- See Also:
-
Field Summary
-
Method Summary
Modifier and TypeMethodDescriptionasArray()
Returns this JSON value asJsonArray
, assuming that this value represents a JSON array.boolean
Returns this JSON value as aboolean
value, assuming that this value is eithertrue
orfalse
.double
asDouble()
Returns this JSON value as adouble
value, assuming that this value represents a JSON number.float
asFloat()
Returns this JSON value as afloat
value, assuming that this value represents a JSON number.int
asInt()
Returns this JSON value as anint
value, assuming that this value represents a JSON number that can be interpreted as Javaint
.long
asLong()
Returns this JSON value as along
value, assuming that this value represents a JSON number that can be interpreted as Javalong
.asObject()
Returns this JSON value asJsonObject
, assuming that this value represents a JSON object.asString()
Returns this JSON value as String, assuming that this value represents a JSON string.boolean
Indicates whether some other object is "equal to" this one according to the contract specified inObject.equals(Object)
.int
hashCode()
boolean
isArray()
Detects whether this value represents a JSON array.boolean
Detects whether this value represents a boolean value.boolean
isFalse()
Detects whether this value represents the JSON literalfalse
.boolean
isNull()
Detects whether this value represents the JSON literalnull
.boolean
isNumber()
Detects whether this value represents a JSON number.boolean
isObject()
Detects whether this value represents a JSON object.boolean
isString()
Detects whether this value represents a JSON string.boolean
isTrue()
Detects whether this value represents the JSON literaltrue
.toString()
Returns the JSON string for this value in its minimal form, without any additional whitespace.toString
(WriterConfig config) Returns the JSON string for this value using the given formatting.void
Writes the JSON representation of this value to the given writer in its minimal form, without any additional whitespace.void
writeTo
(Writer writer, WriterConfig config) Writes the JSON representation of this value to the given writer using the given formatting.
-
Field Details
-
STRING_IS_NULL
- See Also:
-
OBJECT_IS_NULL
- See Also:
-
NAME_IS_NULL
- See Also:
-
VALUE_IS_NULL
- See Also:
-
ARRAY_IS_NULL
- See Also:
-
-
Method Details
-
isObject
Detects whether this value represents a JSON object. If this is the case, this value is an instance ofJsonObject
.- Returns:
true
if this value is an instance of JsonObject
-
isArray
Detects whether this value represents a JSON array. If this is the case, this value is an instance ofJsonArray
.- Returns:
true
if this value is an instance of JsonArray
-
isNumber
Detects whether this value represents a JSON number.- Returns:
true
if this value represents a JSON number
-
isString
Detects whether this value represents a JSON string.- Returns:
true
if this value represents a JSON string
-
isBoolean
Detects whether this value represents a boolean value.- Returns:
true
if this value represents either the JSON literaltrue
orfalse
-
isTrue
Detects whether this value represents the JSON literaltrue
.- Returns:
true
if this value represents the JSON literaltrue
-
isFalse
Detects whether this value represents the JSON literalfalse
.- Returns:
true
if this value represents the JSON literalfalse
-
isNull
Detects whether this value represents the JSON literalnull
.- Returns:
true
if this value represents the JSON literalnull
-
asObject
Returns this JSON value asJsonObject
, assuming that this value represents a JSON object. If this is not the case, an exception is thrown.- Returns:
- a JSONObject for this value
- Throws:
UnsupportedOperationException
- if this value is not a JSON object
-
asArray
Returns this JSON value asJsonArray
, assuming that this value represents a JSON array. If this is not the case, an exception is thrown.- Returns:
- a JSONArray for this value
- Throws:
UnsupportedOperationException
- if this value is not a JSON array
-
asInt
Returns this JSON value as anint
value, assuming that this value represents a JSON number that can be interpreted as Javaint
. If this is not the case, an exception is thrown.To be interpreted as Java
int
, the JSON number must neither contain an exponent nor a fraction part. Moreover, the number must be in theInteger
range.- Returns:
- this value as
int
- Throws:
UnsupportedOperationException
- if this value is not a JSON numberNumberFormatException
- if this JSON number can not be interpreted asint
value
-
asLong
Returns this JSON value as along
value, assuming that this value represents a JSON number that can be interpreted as Javalong
. If this is not the case, an exception is thrown.To be interpreted as Java
long
, the JSON number must neither contain an exponent nor a fraction part. Moreover, the number must be in theLong
range.- Returns:
- this value as
long
- Throws:
UnsupportedOperationException
- if this value is not a JSON numberNumberFormatException
- if this JSON number can not be interpreted aslong
value
-
asFloat
Returns this JSON value as afloat
value, assuming that this value represents a JSON number. If this is not the case, an exception is thrown.If the JSON number is out of the
Float
range,Float.POSITIVE_INFINITY
orFloat.NEGATIVE_INFINITY
is returned.- Returns:
- this value as
float
- Throws:
UnsupportedOperationException
- if this value is not a JSON number
-
asDouble
Returns this JSON value as adouble
value, assuming that this value represents a JSON number. If this is not the case, an exception is thrown.If the JSON number is out of the
Double
range,Double.POSITIVE_INFINITY
orDouble.NEGATIVE_INFINITY
is returned.- Returns:
- this value as
double
- Throws:
UnsupportedOperationException
- if this value is not a JSON number
-
asString
Returns this JSON value as String, assuming that this value represents a JSON string. If this is not the case, an exception is thrown.- Returns:
- the string represented by this value
- Throws:
UnsupportedOperationException
- if this value is not a JSON string
-
asBoolean
Returns this JSON value as aboolean
value, assuming that this value is eithertrue
orfalse
. If this is not the case, an exception is thrown.- Returns:
- this value as
boolean
- Throws:
UnsupportedOperationException
- if this value is neithertrue
orfalse
-
writeTo
Writes the JSON representation of this value to the given writer in its minimal form, without any additional whitespace.Writing performance can be improved by using a
BufferedWriter
.- Parameters:
writer
- the writer to write this value to- Throws:
IOException
- if an I/O error occurs in the writer
-
writeTo
Writes the JSON representation of this value to the given writer using the given formatting.Writing performance can be improved by using a
BufferedWriter
.- Parameters:
writer
- the writer to write this value toconfig
- a configuration that controls the formatting ornull
for the minimal form- Throws:
IOException
- if an I/O error occurs in the writer
-
toString
Returns the JSON string for this value in its minimal form, without any additional whitespace. The result is guaranteed to be a valid input for the methodJson.parse(String)
and to create a value that is equal to this object. -
toString
Returns the JSON string for this value using the given formatting.- Parameters:
config
- a configuration that controls the formatting ornull
for the minimal form- Returns:
- a JSON string that represents this value
-
equals
Indicates whether some other object is "equal to" this one according to the contract specified inObject.equals(Object)
.Two JsonValues are considered equal if and only if they represent the same JSON text. As a consequence, two given JsonObjects may be different even though they contain the same set of names with the same values, but in a different order.
-
hashCode
-