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 {@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.
Instances for JSON numbers and strings 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 there is no doubt about the type of a JSON value, one of 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.