Class JSONObject

  • All Implemented Interfaces:
    JSONArtifact, java.io.Serializable, java.lang.Cloneable, java.util.Map
    Direct Known Subclasses:
    OrderedJSONObject

    public class JSONObject
    extends java.util.HashMap
    implements JSONArtifact
    Models a JSON Object. Extension of HashMap that only allows String keys, and values which are JSON-able.

    JSON-able values are: null, and instances of String, Boolean, Number, JSONObject and JSONArray.

    Instances of this class are not thread-safe.
    See Also:
    Serialized Form
    • Nested Class Summary

      • Nested classes/interfaces inherited from class java.util.AbstractMap

        java.util.AbstractMap.SimpleEntry<K extends java.lang.Object,​V extends java.lang.Object>, java.util.AbstractMap.SimpleImmutableEntry<K extends java.lang.Object,​V extends java.lang.Object>
      • Nested classes/interfaces inherited from interface java.util.Map

        java.util.Map.Entry<K extends java.lang.Object,​V extends java.lang.Object>
    • Constructor Summary

      Constructors 
      Constructor Description
      JSONObject()
      Create a new instance of this class.
    • Method Summary

      All Methods Static Methods Instance Methods Concrete Methods 
      Modifier and Type Method Description
      static boolean isValidObject​(java.lang.Object object)
      Return whether the object is a valid value for a property.
      static boolean isValidType​(java.lang.Class clazz)
      Return whether the class is a valid type of value for a property.
      static JSONObject parse​(java.io.InputStream is)
      Convert a stream of JSON text into object form.
      static JSONObject parse​(java.io.Reader reader)
      Convert a stream (in reader form) of JSON text into object form.
      static JSONObject parse​(java.lang.String str)
      Convert a String of JSON text into object form.
      java.lang.Object put​(java.lang.Object key, java.lang.Object value)
      (non-Javadoc)
      java.lang.String serialize()
      Convert this object into a String of JSON text.
      java.lang.String serialize​(boolean verbose)
      Convert this object into a String of JSON text, specifying verbosity.
      void serialize​(java.io.OutputStream os)
      Convert this object into a stream of JSON text.
      void serialize​(java.io.OutputStream os, boolean verbose)
      Convert this object into a stream of JSON text.
      void serialize​(java.io.Writer writer)
      Convert this object into a stream of JSON text.
      void serialize​(java.io.Writer writer, boolean verbose)
      Convert this object into a stream of JSON text, specifying verbosity.
      java.lang.String toString()
      Over-ridden toString() method.
      • Methods inherited from class java.util.HashMap

        clear, clone, compute, computeIfAbsent, computeIfPresent, containsKey, containsValue, entrySet, forEach, get, getOrDefault, isEmpty, keySet, merge, putAll, putIfAbsent, remove, remove, replace, replace, replaceAll, size, values
      • Methods inherited from class java.util.AbstractMap

        equals, hashCode
      • Methods inherited from class java.lang.Object

        getClass, notify, notifyAll, wait, wait, wait
      • Methods inherited from interface java.util.Map

        equals, hashCode
    • Constructor Detail

      • JSONObject

        public JSONObject()
        Create a new instance of this class.
    • Method Detail

      • isValidObject

        public static boolean isValidObject​(java.lang.Object object)
        Return whether the object is a valid value for a property.
        Parameters:
        object - The object to check for validity as a JSON property value.
      • isValidType

        public static boolean isValidType​(java.lang.Class clazz)
        Return whether the class is a valid type of value for a property.
        Parameters:
        clazz - The class type to check for validity as a JSON object type.
      • parse

        public static JSONObject parse​(java.io.Reader reader)
                                throws java.io.IOException
        Convert a stream (in reader form) of JSON text into object form.
        Parameters:
        reader - The reader from which the JSON data is read.
        Returns:
        The contructed JSON Object.
        Throws:
        IOEXception - Thrown if an underlying IO error from the reader occurs, or if malformed JSON is read,
        java.io.IOException
      • parse

        public static JSONObject parse​(java.lang.String str)
                                throws java.io.IOException
        Convert a String of JSON text into object form.
        Parameters:
        str - The JSON string to parse into a Java Object.
        Returns:
        The contructed JSON Object.
        Throws:
        IOEXception - Thrown if malformed JSON is read,
        java.io.IOException
      • parse

        public static JSONObject parse​(java.io.InputStream is)
                                throws java.io.IOException
        Convert a stream of JSON text into object form.
        Parameters:
        is - The inputStream from which to read the JSON. It will assume the input stream is in UTF-8 and read it as such.
        Returns:
        The contructed JSON Object.
        Throws:
        IOEXception - Thrown if an underlying IO error from the stream occurs, or if malformed JSON is read,
        java.io.IOException
      • serialize

        public void serialize​(java.io.OutputStream os)
                       throws java.io.IOException
        Convert this object into a stream of JSON text. Same as calling serialize(os,false); Note that encoding is always written as UTF-8, as per JSON spec.
        Specified by:
        serialize in interface JSONArtifact
        Parameters:
        os - The output stream to serialize data to.
        Throws:
        java.io.IOException - Thrown on IO errors during serialization.
      • serialize

        public void serialize​(java.io.OutputStream os,
                              boolean verbose)
                       throws java.io.IOException
        Convert this object into a stream of JSON text. Same as calling serialize(writer,false); Note that encoding is always written as UTF-8, as per JSON spec.
        Specified by:
        serialize in interface JSONArtifact
        Parameters:
        os - The output stream to serialize data to.
        verbose - Whether or not to write the JSON text in a verbose format.
        Throws:
        java.io.IOException - Thrown on IO errors during serialization.
      • serialize

        public void serialize​(java.io.Writer writer)
                       throws java.io.IOException
        Convert this object into a stream of JSON text. Same as calling serialize(writer,false);
        Specified by:
        serialize in interface JSONArtifact
        Parameters:
        writer - The writer which to serialize the JSON text to.
        Throws:
        java.io.IOException - Thrown on IO errors during serialization.
      • serialize

        public void serialize​(java.io.Writer writer,
                              boolean verbose)
                       throws java.io.IOException
        Convert this object into a stream of JSON text, specifying verbosity.
        Specified by:
        serialize in interface JSONArtifact
        Parameters:
        writer - The writer which to serialize the JSON text to.
        Throws:
        java.io.IOException - Thrown on IO errors during serialization.
      • serialize

        public java.lang.String serialize​(boolean verbose)
                                   throws java.io.IOException
        Convert this object into a String of JSON text, specifying verbosity.
        Specified by:
        serialize in interface JSONArtifact
        Parameters:
        verbose - Whether or not to serialize in compressed for formatted Strings.
        Throws:
        java.io.IOException - Thrown on IO errors during serialization.
      • serialize

        public java.lang.String serialize()
                                   throws java.io.IOException
        Convert this object into a String of JSON text. Same as serialize(false);
        Specified by:
        serialize in interface JSONArtifact
        Throws:
        java.io.IOException - Thrown on IO errors during serialization.
      • put

        public java.lang.Object put​(java.lang.Object key,
                                    java.lang.Object value)
        (non-Javadoc)
        Specified by:
        put in interface java.util.Map
        Overrides:
        put in class java.util.HashMap
        See Also:
        HashMap.put(java.lang.Object, java.lang.Object)
      • toString

        public java.lang.String toString()
        Over-ridden toString() method. Returns the same value as serialize(), which is a compact JSON String. If an error occurs in the serialization, the return will be of format: JSON Generation Error: []
        Overrides:
        toString in class java.util.AbstractMap