com.ibm.json.java
Class OrderedJSONObject

java.lang.Object
  extended byjava.util.AbstractMap
      extended byjava.util.HashMap
          extended bycom.ibm.json.java.JSONObject
              extended bycom.ibm.json.java.OrderedJSONObject
All Implemented Interfaces:
java.lang.Cloneable, JSONArtifact, java.util.Map, java.io.Serializable

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

Constructor Summary
OrderedJSONObject()
          Create a new instance of this class.
 
Method Summary
 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 com.ibm.json.java.JSONObject
isValidObject, isValidType, serialize, serialize, serialize, serialize, serialize, serialize, toString
 
Methods inherited from class java.util.HashMap
containsKey, containsValue, entrySet, get, isEmpty, keySet, putAll, size, values
 
Methods inherited from class java.util.AbstractMap
equals, hashCode
 
Methods inherited from class java.lang.Object
finalize, 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.

See Also:
HashMap.remove(java.lang.Object)

clear

public void clear()
(non-Javadoc)

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.


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.