Represents a JSON value. This can be a JSON
object, an
array, a
number, a
string, or one of the literals
true,
false, and
null.
The literals true, false, and null are represented by the constants {@link #TRUE}, {@link #FALSE}, and {@link #NULL}.
JSON objects and arrays are represented by the subtypes {@link JsonObject} and {@link 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 {@link #valueOf(String)}, {@link #valueOf(long)}, {@link #valueOf(double)}, etc.
In order to find out whether an instance of this class is of a certain type, the methods {@link #isObject()}, {@link #isArray()}, {@link #isString()}, {@link #isNumber()} etc. can beused.
If the type of a JSON value is known, the methods {@link #asObject()}, {@link #asArray()}, {@link #asString()}, {@link #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.