Class JsonValue
- java.lang.Object
-
- org.eclipse.rap.json.JsonValue
-
- All Implemented Interfaces:
java.io.Serializable
- Direct Known Subclasses:
JsonArray
,JsonObject
public abstract class JsonValue extends java.lang.Object implements java.io.Serializable
Represents a JSON value. According to RFC 4627, a JSON value must be an object, an array, a number, a string, or one of the literal names true, false, and null.The literal names true, false, and null are represented by the constants
TRUE
,FALSE
, andNULL
.JSON objects and arrays are represented by the subtypes
JsonObject
andJsonArray
. Instances of these types can be created using the public constructors.Instances for JSON numbers and strings can be created using the static factory methods
valueOf(String)
,valueOf(long)
,valueOf(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 there is no doubt about the type of a JSON value, one of 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.
- Since:
- 2.1
- See Also:
- Serialized Form
-
-
Method Summary
All Methods Static Methods Instance Methods Abstract Methods Concrete Methods Modifier and Type Method Description JsonArray
asArray()
Returns this JSON value asJsonArray
, assuming that this value represents a JSON array.boolean
asBoolean()
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
.JsonObject
asObject()
Returns this JSON value asJsonObject
, assuming that this value represents a JSON object.java.lang.String
asString()
Returns this JSON value as String, assuming that this value represents a JSON string.boolean
equals(java.lang.Object object)
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
isBoolean()
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
.static JsonValue
readFrom(java.io.Reader reader)
Reads a JSON value from the given reader.static JsonValue
readFrom(java.lang.String text)
Reads a JSON value from the given string.java.lang.String
toString()
Returns the JSON string for this value in its minimal form, without any additional whitespace.static JsonValue
valueOf(boolean value)
Returns a JsonValue instance that represents the givenboolean
value.static JsonValue
valueOf(double value)
Returns a JsonValue instance that represents the givendouble
value.static JsonValue
valueOf(float value)
Returns a JsonValue instance that represents the givenfloat
value.static JsonValue
valueOf(int value)
Returns a JsonValue instance that represents the givenint
value.static JsonValue
valueOf(long value)
Returns a JsonValue instance that represents the givenlong
value.static JsonValue
valueOf(java.lang.String string)
Returns a JsonValue instance that represents the given string.protected abstract void
write(org.eclipse.rap.json.JsonWriter writer)
void
writeTo(java.io.Writer writer)
Writes the JSON representation for this object to the given writer.
-
-
-
Method Detail
-
readFrom
public static JsonValue readFrom(java.io.Reader reader) throws java.io.IOException
Reads a JSON value from the given reader.Characters are read in chunks and buffered internally, therefore wrapping an existing reader in an additional
BufferedReader
does not improve reading performance.- Parameters:
reader
- the reader to read the JSON value from- Returns:
- the JSON value that has been read
- Throws:
java.io.IOException
- if an I/O error occurs in the readerParseException
- if the input is not valid JSON
-
readFrom
public static JsonValue readFrom(java.lang.String text)
Reads a JSON value from the given string.- Parameters:
text
- the string that contains the JSON value- Returns:
- the JSON value that has been read
- Throws:
ParseException
- if the input is not valid JSON
-
valueOf
public static JsonValue valueOf(int value)
Returns a JsonValue instance that represents the givenint
value.- Parameters:
value
- the value to get a JSON representation for- Returns:
- a JSON value that represents the given value
- Since:
- 2.2
-
valueOf
public static JsonValue valueOf(long value)
Returns a JsonValue instance that represents the givenlong
value.- Parameters:
value
- the value to get a JSON representation for- Returns:
- a JSON value that represents the given value
-
valueOf
public static JsonValue valueOf(float value)
Returns a JsonValue instance that represents the givenfloat
value.- Parameters:
value
- the value to get a JSON representation for- Returns:
- a JSON value that represents the given value
-
valueOf
public static JsonValue valueOf(double value)
Returns a JsonValue instance that represents the givendouble
value.- Parameters:
value
- the value to get a JSON representation for- Returns:
- a JSON value that represents the given value
-
valueOf
public static JsonValue valueOf(java.lang.String string)
Returns a JsonValue instance that represents the given string.- Parameters:
string
- the string to get a JSON representation for- Returns:
- a JSON value that represents the given string
-
valueOf
public static JsonValue valueOf(boolean value)
Returns a JsonValue instance that represents the givenboolean
value.- Parameters:
value
- the value to get a JSON representation for- Returns:
- a JSON value that represents the given value
-
isObject
public boolean 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
public boolean 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
public boolean isNumber()
Detects whether this value represents a JSON number.- Returns:
true
if this value represents a JSON number
-
isString
public boolean isString()
Detects whether this value represents a JSON string.- Returns:
true
if this value represents a JSON string
-
isBoolean
public boolean isBoolean()
Detects whether this value represents a boolean value.- Returns:
true
if this value represents either the JSON literaltrue
orfalse
-
isTrue
public boolean isTrue()
Detects whether this value represents the JSON literaltrue
.- Returns:
true
if this value represents the JSON literaltrue
-
isFalse
public boolean isFalse()
Detects whether this value represents the JSON literalfalse
.- Returns:
true
if this value represents the JSON literalfalse
-
isNull
public boolean isNull()
Detects whether this value represents the JSON literalnull
.- Returns:
true
if this value represents the JSON literalnull
-
asObject
public JsonObject 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:
java.lang.UnsupportedOperationException
- if this value is not a JSON object
-
asArray
public JsonArray 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:
java.lang.UnsupportedOperationException
- if this value is not a JSON array
-
asInt
public int 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:
java.lang.UnsupportedOperationException
- if this value is not a JSON numberjava.lang.NumberFormatException
- if this JSON number can not be interpreted asint
value
-
asLong
public long 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:
java.lang.UnsupportedOperationException
- if this value is not a JSON numberjava.lang.NumberFormatException
- if this JSON number can not be interpreted aslong
value
-
asFloat
public float 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:
java.lang.UnsupportedOperationException
- if this value is not a JSON number
-
asDouble
public double 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:
java.lang.UnsupportedOperationException
- if this value is not a JSON number
-
asString
public java.lang.String 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:
java.lang.UnsupportedOperationException
- if this value is not a JSON string
-
asBoolean
public boolean 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:
java.lang.UnsupportedOperationException
- if this value is neithertrue
orfalse
-
writeTo
public void writeTo(java.io.Writer writer) throws java.io.IOException
Writes the JSON representation for this object to the given writer.Single elements are passed directly to the given writer. Therefore, if the writer is not buffered, wrapping it in a
BufferedWriter
can drastically improve writing performance.- Parameters:
writer
- the writer to write this value to- Throws:
java.io.IOException
- if an I/O error occurs in the writer
-
toString
public java.lang.String 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 methodreadFrom(String)
and to create a value that is equal to this object.- Overrides:
toString
in classjava.lang.Object
- Returns:
- a JSON string that represents this value
-
equals
public boolean equals(java.lang.Object object)
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.
- Overrides:
equals
in classjava.lang.Object
- Parameters:
object
- the reference object with which to compare- Returns:
- true if this object is the same as the object argument; false otherwise
-
hashCode
public int hashCode()
- Overrides:
hashCode
in classjava.lang.Object
-
write
protected abstract void write(org.eclipse.rap.json.JsonWriter writer) throws java.io.IOException
- Throws:
java.io.IOException
-
-