Class OrderedJSONObject

All Implemented Interfaces:
JSONArtifact, Serializable, Cloneable, 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:
  • Constructor Details

    • OrderedJSONObject

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

    • parse

      public static JSONObject parse(Reader reader) throws 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,
      IOException
    • parse

      public static JSONObject parse(String str) throws 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,
      IOException
    • parse

      public static JSONObject parse(InputStream is) throws 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,
      IOException
    • put

      public Object put(Object key, 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 Map
      Overrides:
      put in class JSONObject
      See Also:
    • remove

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

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

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

      public 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.