Class 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. This can be a JSON object, an array, a number, a string, or one of the literals true, false, and 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.

    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:
    Serialized Form
    • Method Summary

      All Methods Instance Methods Concrete Methods 
      Modifier and Type Method Description
      JsonArray asArray()
      Returns this JSON value as JsonArray, assuming that this value represents a JSON array.
      boolean asBoolean()
      Returns this JSON value as a boolean value, assuming that this value is either true or false.
      double asDouble()
      Returns this JSON value as a double value, assuming that this value represents a JSON number.
      float asFloat()
      Returns this JSON value as a float value, assuming that this value represents a JSON number.
      int asInt()
      Returns this JSON value as an int value, assuming that this value represents a JSON number that can be interpreted as Java int.
      long asLong()
      Returns this JSON value as a long value, assuming that this value represents a JSON number that can be interpreted as Java long.
      JsonObject asObject()
      Returns this JSON value as JsonObject, 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 in Object.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 literal false.
      boolean isNull()
      Detects whether this value represents the JSON literal null.
      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 literal true.
      java.lang.String toString()
      Returns the JSON string for this value in its minimal form, without any additional whitespace.
      java.lang.String toString​(WriterConfig config)
      Returns the JSON string for this value using the given formatting.
      void writeTo​(java.io.Writer writer)
      Writes the JSON representation of this value to the given writer in its minimal form, without any additional whitespace.
      void writeTo​(java.io.Writer writer, WriterConfig config)
      Writes the JSON representation of this value to the given writer using the given formatting.
      • Methods inherited from class java.lang.Object

        clone, finalize, getClass, notify, notifyAll, wait, wait, wait
    • Method Detail

      • isObject

        public boolean isObject()
        Detects whether this value represents a JSON object. If this is the case, this value is an instance of JsonObject.
        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 of JsonArray.
        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 literal true or false
      • isTrue

        public boolean isTrue()
        Detects whether this value represents the JSON literal true.
        Returns:
        true if this value represents the JSON literal true
      • isFalse

        public boolean isFalse()
        Detects whether this value represents the JSON literal false.
        Returns:
        true if this value represents the JSON literal false
      • isNull

        public boolean isNull()
        Detects whether this value represents the JSON literal null.
        Returns:
        true if this value represents the JSON literal null
      • asObject

        public JsonObject asObject()
        Returns this JSON value as JsonObject, 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 as JsonArray, 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 an int value, assuming that this value represents a JSON number that can be interpreted as Java int. 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 the Integer range.

        Returns:
        this value as int
        Throws:
        java.lang.UnsupportedOperationException - if this value is not a JSON number
        java.lang.NumberFormatException - if this JSON number can not be interpreted as int value
      • asLong

        public long asLong()
        Returns this JSON value as a long value, assuming that this value represents a JSON number that can be interpreted as Java long. 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 the Long range.

        Returns:
        this value as long
        Throws:
        java.lang.UnsupportedOperationException - if this value is not a JSON number
        java.lang.NumberFormatException - if this JSON number can not be interpreted as long value
      • asFloat

        public float asFloat()
        Returns this JSON value as a float 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 or Float.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 a double 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 or Double.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 a boolean value, assuming that this value is either true or false. If this is not the case, an exception is thrown.
        Returns:
        this value as boolean
        Throws:
        java.lang.UnsupportedOperationException - if this value is neither true or false
      • writeTo

        public void writeTo​(java.io.Writer writer)
                     throws java.io.IOException
        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:
        java.io.IOException - if an I/O error occurs in the writer
      • writeTo

        public void writeTo​(java.io.Writer writer,
                            WriterConfig config)
                     throws java.io.IOException
        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 to
        config - a configuration that controls the formatting or null for the minimal form
        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.
        Overrides:
        toString in class java.lang.Object
        Returns:
        a JSON string that represents this value
      • toString

        public java.lang.String toString​(WriterConfig config)
        Returns the JSON string for this value using the given formatting.
        Parameters:
        config - a configuration that controls the formatting or null for the minimal form
        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 in Object.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 class java.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 class java.lang.Object