Class OrderedJSONObject

  • All Implemented Interfaces:
    JSONArtifact, java.io.Serializable, java.lang.Cloneable, java.util.Map

    public class OrderedJSONObject
    extends JSONObject
    Extension of the basic JSONObject. This class allows control of the serialization order of attributes. The order in which items are put into the instance controls the order in which they are serialized out. For example, the last item put is the last item serialized.

    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
      OrderedJSONObject()
      Create a new instance of this class.
    • Method Summary

      All Methods Static Methods Instance Methods Concrete Methods 
      Modifier and Type Method Description
      void clear()
      (non-Javadoc)
      java.lang.Object clone()
      Returns a shallow copy of this HashMap instance: the keys and values themselves are not cloned.
      java.util.Iterator getOrder()
      Method to obtain the order in which the items will be serialized.
      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)
      Method to put a JSON'able object into the instance.
      java.lang.Object remove​(java.lang.Object key)
      Method to remove an entry from the OrderedJSONObject instance.
      • Methods inherited from class java.util.HashMap

        compute, computeIfAbsent, computeIfPresent, containsKey, containsValue, entrySet, forEach, get, getOrDefault, isEmpty, keySet, merge, putAll, putIfAbsent, 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

      • OrderedJSONObject

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

      • 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. Note that the JSONObject will be an instance of OrderedJSONObject and as such, attribute order is maintained.
        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. Note that the JSONObject will be an instance of OrderedJSONObject and as such, attribute order is maintained.
        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. Note that the JSONObject will be an instance of OrderedJSONObject and as such, attribute order is maintained.
        Throws:
        IOEXception - Thrown if an underlying IO error from the stream occurs, or if malformed JSON is read,
        java.io.IOException
      • put

        public java.lang.Object put​(java.lang.Object key,
                                    java.lang.Object value)
        Method to put a JSON'able object into the instance. Note that the order of initial puts controls the order of serialization. Meaning that the first time an item is put into the object determines is position of serialization. Subsequent puts with the same key replace the existing entry value and leave serialization position alone. For moving the position, the object must be removed, then re-put.
        Specified by:
        put in interface java.util.Map
        Overrides:
        put in class JSONObject
        See Also:
        HashMap.put(java.lang.Object, java.lang.Object)
      • remove

        public java.lang.Object remove​(java.lang.Object key)
        Method to remove an entry from the OrderedJSONObject instance.
        Specified by:
        remove in interface java.util.Map
        Overrides:
        remove in class java.util.HashMap
        See Also:
        HashMap.remove(java.lang.Object)
      • clear

        public void clear()
        (non-Javadoc)
        Specified by:
        clear in interface java.util.Map
        Overrides:
        clear in class java.util.HashMap
        See Also:
        HashMap.clear()
      • clone

        public java.lang.Object clone()
        Returns a shallow copy of this HashMap instance: the keys and values themselves are not cloned.
        Overrides:
        clone in class java.util.HashMap
      • getOrder

        public java.util.Iterator getOrder()
        Method to obtain the order in which the items will be serialized.
        Returns:
        An iterator that represents the attribute names in the order that they will be serialized.