net.sf.json
Class JSONArray

java.lang.Object
  extended by net.sf.json.JSONArray
All Implemented Interfaces:
Comparable, Iterable, Collection, List, JSON

public final class JSONArray
extends Object
implements JSON, List, Comparable

A JSONArray is an ordered sequence of values. Its external text form is a string wrapped in square brackets with commas separating the values. The internal form is an object having get and opt methods for accessing the values by index, and element methods for adding or replacing values. The values can be any of these types: Boolean, JSONArray, JSONObject, Number, String, or the JSONNull object.

The constructor can convert a JSON text into a Java object. The toString method converts to JSON text.

A get method returns a value if one can be found, and throws an exception if one cannot be found. An opt method returns a default value instead of throwing an exception, and so is useful for obtaining optional values.

The generic get() and opt() methods return an object which you can cast or query for type. There are also typed get and opt methods that do type checking and type coersion for you.

The texts produced by the toString methods strictly conform to JSON syntax rules. The constructors are more forgiving in the texts they will accept:

Author:
JSON.org

Constructor Summary
JSONArray()
          Construct an empty JSONArray.
 
Method Summary
 void add(int index, Object value)
           
 void add(int index, Object value, JsonConfig jsonConfig)
           
 boolean add(Object value)
           
 boolean add(Object value, JsonConfig jsonConfig)
           
 boolean addAll(Collection collection)
           
 boolean addAll(Collection collection, JsonConfig jsonConfig)
           
 boolean addAll(int index, Collection collection)
           
 boolean addAll(int index, Collection collection, JsonConfig jsonConfig)
           
protected static boolean addInstance(Object instance)
          Adds a reference for cycle detection check.
protected  JSONArray addString(String str)
          Adds a String without performing any conversion on it.
 void clear()
           
 int compareTo(Object obj)
           
 boolean contains(Object o)
           
 boolean contains(Object o, JsonConfig jsonConfig)
           
 boolean containsAll(Collection collection)
           
 boolean containsAll(Collection collection, JsonConfig jsonConfig)
           
 JSONArray discard(int index)
          Remove an element, if present.
 JSONArray discard(Object o)
          Remove an element, if present.
 JSONArray element(boolean value)
          Append a boolean value.
 JSONArray element(Collection value)
          Append a value in the JSONArray, where the value will be a JSONArray which is produced from a Collection.
 JSONArray element(Collection value, JsonConfig jsonConfig)
          Append a value in the JSONArray, where the value will be a JSONArray which is produced from a Collection.
 JSONArray element(double value)
          Append a double value.
 JSONArray element(int value)
          Append an int value.
 JSONArray element(int index, boolean value)
          Put or replace a boolean value in the JSONArray.
 JSONArray element(int index, Collection value)
          Put a value in the JSONArray, where the value will be a JSONArray which is produced from a Collection.
 JSONArray element(int index, Collection value, JsonConfig jsonConfig)
          Put a value in the JSONArray, where the value will be a JSONArray which is produced from a Collection.
 JSONArray element(int index, double value)
          Put or replace a double value.
 JSONArray element(int index, int value)
          Put or replace an int value.
 JSONArray element(int index, long value)
          Put or replace a long value.
 JSONArray element(int index, Map value)
          Put a value in the JSONArray, where the value will be a JSONObject which is produced from a Map.
 JSONArray element(int index, Map value, JsonConfig jsonConfig)
          Put a value in the JSONArray, where the value will be a JSONObject which is produced from a Map.
 JSONArray element(int index, Object value)
          Put or replace an object value in the JSONArray.
 JSONArray element(int index, Object value, JsonConfig jsonConfig)
          Put or replace an object value in the JSONArray.
 JSONArray element(int index, String value)
          Put or replace a String value in the JSONArray.
 JSONArray element(int index, String value, JsonConfig jsonConfig)
          Put or replace a String value in the JSONArray.
 JSONArray element(JSONNull value)
          Append an JSON value.
 JSONArray element(JSONObject value)
          Append an JSON value.
 JSONArray element(long value)
          Append an long value.
 JSONArray element(Map value)
          Put a value in the JSONArray, where the value will be a JSONObject which is produced from a Map.
 JSONArray element(Map value, JsonConfig jsonConfig)
          Put a value in the JSONArray, where the value will be a JSONObject which is produced from a Map.
 JSONArray element(Object value)
          Append an object value.
 JSONArray element(Object value, JsonConfig jsonConfig)
          Append an object value.
 JSONArray element(String value)
          Append a String value.
 JSONArray element(String value, JsonConfig jsonConfig)
          Append a String value.
 boolean equals(Object obj)
           
protected static void fireArrayEndEvent(JsonConfig jsonConfig)
          Fires an end of array event.
protected static void fireArrayStartEvent(JsonConfig jsonConfig)
          Fires a start of array event.
protected static void fireElementAddedEvent(int index, Object element, JsonConfig jsonConfig)
          Fires an element added event.
protected static void fireErrorEvent(JSONException jsone, JsonConfig jsonConfig)
          Fires an error event.
protected static void fireObjectEndEvent(JsonConfig jsonConfig)
          Fires an end of object event.
protected static void fireObjectStartEvent(JsonConfig jsonConfig)
          Fires a start of object event.
protected static void firePropertySetEvent(String key, Object value, boolean accumulated, JsonConfig jsonConfig)
          Fires a property set event.
protected static void fireWarnEvent(String warning, JsonConfig jsonConfig)
          Fires a warning event.
static JSONArray fromObject(Object object)
          Creates a JSONArray.
Inspects the object type to call the correct JSONArray factory method.
static JSONArray fromObject(Object object, JsonConfig jsonConfig)
          Creates a JSONArray.
Inspects the object type to call the correct JSONArray factory method.
 Object get(int index)
          Get the object value associated with an index.
 boolean getBoolean(int index)
          Get the boolean value associated with an index.
static Class[] getCollectionType(PropertyDescriptor pd, boolean useGetter)
          Get the collection type from a getter or setter, or null if no type was found.
Contributed by [Matt Small @ WaveMaker].
static int[] getDimensions(JSONArray jsonArray)
          Returns the number of dimensions suited for a java array.
 double getDouble(int index)
          Get the double value associated with an index.
 int getInt(int index)
          Get the int value associated with an index.
 JSONArray getJSONArray(int index)
          Get the JSONArray associated with an index.
 JSONObject getJSONObject(int index)
          Get the JSONObject associated with an index.
 long getLong(int index)
          Get the long value associated with an index.
 String getString(int index)
          Get the string associated with an index.
 int hashCode()
           
 int indexOf(Object o)
           
 boolean isArray()
          Returns true if this object is a JSONArray, false otherwise.
 boolean isEmpty()
          Returns true if this object has no elements or keys.
 boolean isExpandElements()
           
 Iterator iterator()
          Returns an Iterator for this JSONArray
 String join(String separator)
          Make a string from the contents of this JSONArray.
 String join(String separator, boolean stripQuotes)
          Make a string from the contents of this JSONArray.
 int lastIndexOf(Object o)
           
 ListIterator listIterator()
           
 ListIterator listIterator(int index)
           
 Object opt(int index)
          Get the optional object value associated with an index.
 boolean optBoolean(int index)
          Get the optional boolean value associated with an index.
 boolean optBoolean(int index, boolean defaultValue)
          Get the optional boolean value associated with an index.
 double optDouble(int index)
          Get the optional double value associated with an index.
 double optDouble(int index, double defaultValue)
          Get the optional double value associated with an index.
 int optInt(int index)
          Get the optional int value associated with an index.
 int optInt(int index, int defaultValue)
          Get the optional int value associated with an index.
 JSONArray optJSONArray(int index)
          Get the optional JSONArray associated with an index.
 JSONObject optJSONObject(int index)
          Get the optional JSONObject associated with an index.
 long optLong(int index)
          Get the optional long value associated with an index.
 long optLong(int index, long defaultValue)
          Get the optional long value associated with an index.
 String optString(int index)
          Get the optional string value associated with an index.
 String optString(int index, String defaultValue)
          Get the optional string associated with an index.
 Object remove(int index)
           
 boolean remove(Object o)
           
 boolean removeAll(Collection collection)
           
 boolean removeAll(Collection collection, JsonConfig jsonConfig)
           
protected static void removeInstance(Object instance)
          Removes a reference for cycle detection check.
 boolean retainAll(Collection collection)
           
 boolean retainAll(Collection collection, JsonConfig jsonConfig)
           
 Object set(int index, Object value)
           
 Object set(int index, Object value, JsonConfig jsonConfig)
           
 void setExpandElements(boolean expandElements)
           
 int size()
          Get the number of elements in the JSONArray, included nulls.
 List subList(int fromIndex, int toIndex)
           
 Object[] toArray()
          Produce an Object[] with the contents of this JSONArray.
static Object toArray(JSONArray jsonArray)
          Creates a java array from a JSONArray.
static Object toArray(JSONArray jsonArray, Class objectClass)
          Creates a java array from a JSONArray.
static Object toArray(JSONArray jsonArray, Class objectClass, Map classMap)
          Creates a java array from a JSONArray.
Any attribute is a JSONObject and matches a key in the classMap, it will be converted to that target class.
The classMap has the following conventions: Every key must be an String. Every value must be a Class. A key may be a regular expression.
static Object toArray(JSONArray jsonArray, JsonConfig jsonConfig)
          Creates a java array from a JSONArray.
static Object toArray(JSONArray jsonArray, Object root, JsonConfig jsonConfig)
          Creates a java array from a JSONArray.
 Object[] toArray(Object[] array)
           
static Collection toCollection(JSONArray jsonArray)
          Returns a List or a Set taking generics into account.
static Collection toCollection(JSONArray jsonArray, Class objectClass)
          Returns a List or a Set taking generics into account.
static Collection toCollection(JSONArray jsonArray, JsonConfig jsonConfig)
          Returns a List or a Set taking generics into account.
Contributed by [Matt Small @ WaveMaker].
 JSONObject toJSONObject(JSONArray names)
          Produce a JSONObject by combining a JSONArray of names with the values of this JSONArray.
static List toList(JSONArray jsonArray)
          Deprecated. replaced by toCollection
static List toList(JSONArray jsonArray, Class objectClass)
          Deprecated. replaced by toCollection
static List toList(JSONArray jsonArray, Class objectClass, Map classMap)
          Deprecated. replaced by toCollection
static List toList(JSONArray jsonArray, JsonConfig jsonConfig)
          Deprecated. replaced by toCollection
static List toList(JSONArray jsonArray, Object root, JsonConfig jsonConfig)
          Creates a List from a JSONArray.
 String toString()
          Make a JSON text of this JSONArray.
 String toString(int indentFactor)
          Make a prettyprinted JSON text of this JSONArray.
 String toString(int indentFactor, int indent)
          Make a prettyprinted JSON text of this JSONArray.
 Writer write(Writer writer)
          Write the contents of the JSONArray as JSON text to a writer.
 
Methods inherited from class java.lang.Object
clone, finalize, getClass, notify, notifyAll, wait, wait, wait
 

Constructor Detail

JSONArray

public JSONArray()
Construct an empty JSONArray.

Method Detail

fromObject

public static JSONArray fromObject(Object object)
Creates a JSONArray.
Inspects the object type to call the correct JSONArray factory method. Accepts JSON formatted strings, arrays, Collections and Enums.

Parameters:
object -
Throws:
JSONException - if the object can not be converted to a proper JSONArray.

fromObject

public static JSONArray fromObject(Object object,
                                   JsonConfig jsonConfig)
Creates a JSONArray.
Inspects the object type to call the correct JSONArray factory method. Accepts JSON formatted strings, arrays, Collections and Enums.

Parameters:
object -
Throws:
JSONException - if the object can not be converted to a proper JSONArray.

getCollectionType

public static Class[] getCollectionType(PropertyDescriptor pd,
                                        boolean useGetter)
                                 throws JSONException
Get the collection type from a getter or setter, or null if no type was found.
Contributed by [Matt Small @ WaveMaker].

Throws:
JSONException

getDimensions

public static int[] getDimensions(JSONArray jsonArray)
Returns the number of dimensions suited for a java array.


toArray

public static Object toArray(JSONArray jsonArray)
Creates a java array from a JSONArray.


toArray

public static Object toArray(JSONArray jsonArray,
                             Class objectClass)
Creates a java array from a JSONArray.


toArray

public static Object toArray(JSONArray jsonArray,
                             Class objectClass,
                             Map classMap)
Creates a java array from a JSONArray.
Any attribute is a JSONObject and matches a key in the classMap, it will be converted to that target class.
The classMap has the following conventions:


toArray

public static Object toArray(JSONArray jsonArray,
                             JsonConfig jsonConfig)
Creates a java array from a JSONArray.


toArray

public static Object toArray(JSONArray jsonArray,
                             Object root,
                             JsonConfig jsonConfig)
Creates a java array from a JSONArray.


toCollection

public static Collection toCollection(JSONArray jsonArray)
Returns a List or a Set taking generics into account.


toCollection

public static Collection toCollection(JSONArray jsonArray,
                                      Class objectClass)
Returns a List or a Set taking generics into account.


toCollection

public static Collection toCollection(JSONArray jsonArray,
                                      JsonConfig jsonConfig)
Returns a List or a Set taking generics into account.
Contributed by [Matt Small @ WaveMaker].


toList

public static List toList(JSONArray jsonArray)
Deprecated. replaced by toCollection

Creates a List from a JSONArray.

See Also:
toCollection(JSONArray)

toList

public static List toList(JSONArray jsonArray,
                          Class objectClass)
Deprecated. replaced by toCollection

Creates a List from a JSONArray.

See Also:
toCollection(JSONArray,Class)

toList

public static List toList(JSONArray jsonArray,
                          Class objectClass,
                          Map classMap)
Deprecated. replaced by toCollection

Creates a List from a JSONArray.
Any attribute is a JSONObject and matches a key in the classMap, it will be converted to that target class.
The classMap has the following conventions:

See Also:
#toCollection(JSONArray,Class,Map)

toList

public static List toList(JSONArray jsonArray,
                          JsonConfig jsonConfig)
Deprecated. replaced by toCollection

Creates a List from a JSONArray.

See Also:
toCollection(JSONArray,JsonConfig)

toList

public static List toList(JSONArray jsonArray,
                          Object root,
                          JsonConfig jsonConfig)
Creates a List from a JSONArray.


add

public void add(int index,
                Object value)
Specified by:
add in interface List

add

public void add(int index,
                Object value,
                JsonConfig jsonConfig)

add

public boolean add(Object value)
Specified by:
add in interface Collection
Specified by:
add in interface List

add

public boolean add(Object value,
                   JsonConfig jsonConfig)

addAll

public boolean addAll(Collection collection)
Specified by:
addAll in interface Collection
Specified by:
addAll in interface List

addAll

public boolean addAll(Collection collection,
                      JsonConfig jsonConfig)

addAll

public boolean addAll(int index,
                      Collection collection)
Specified by:
addAll in interface List

addAll

public boolean addAll(int index,
                      Collection collection,
                      JsonConfig jsonConfig)

clear

public void clear()
Specified by:
clear in interface Collection
Specified by:
clear in interface List

compareTo

public int compareTo(Object obj)
Specified by:
compareTo in interface Comparable

contains

public boolean contains(Object o)
Specified by:
contains in interface Collection
Specified by:
contains in interface List

contains

public boolean contains(Object o,
                        JsonConfig jsonConfig)

containsAll

public boolean containsAll(Collection collection)
Specified by:
containsAll in interface Collection
Specified by:
containsAll in interface List

containsAll

public boolean containsAll(Collection collection,
                           JsonConfig jsonConfig)

discard

public JSONArray discard(int index)
Remove an element, if present.

Parameters:
index - the index of the element.
Returns:
this.

discard

public JSONArray discard(Object o)
Remove an element, if present.

Parameters:
index - the element.
Returns:
this.

element

public JSONArray element(boolean value)
Append a boolean value. This increases the array's length by one.

Parameters:
value - A boolean value.
Returns:
this.

element

public JSONArray element(Collection value)
Append a value in the JSONArray, where the value will be a JSONArray which is produced from a Collection.

Parameters:
value - A Collection value.
Returns:
this.

element

public JSONArray element(Collection value,
                         JsonConfig jsonConfig)
Append a value in the JSONArray, where the value will be a JSONArray which is produced from a Collection.

Parameters:
value - A Collection value.
Returns:
this.

element

public JSONArray element(double value)
Append a double value. This increases the array's length by one.

Parameters:
value - A double value.
Returns:
this.
Throws:
JSONException - if the value is not finite.

element

public JSONArray element(int value)
Append an int value. This increases the array's length by one.

Parameters:
value - An int value.
Returns:
this.

element

public JSONArray element(int index,
                         boolean value)
Put or replace a boolean value in the JSONArray. If the index is greater than the length of the JSONArray, then null elements will be added as necessary to pad it out.

Parameters:
index - The subscript.
value - A boolean value.
Returns:
this.
Throws:
JSONException - If the index is negative.

element

public JSONArray element(int index,
                         Collection value)
Put a value in the JSONArray, where the value will be a JSONArray which is produced from a Collection.

Parameters:
index - The subscript.
value - A Collection value.
Returns:
this.
Throws:
JSONException - If the index is negative or if the value is not finite.

element

public JSONArray element(int index,
                         Collection value,
                         JsonConfig jsonConfig)
Put a value in the JSONArray, where the value will be a JSONArray which is produced from a Collection.

Parameters:
index - The subscript.
value - A Collection value.
Returns:
this.
Throws:
JSONException - If the index is negative or if the value is not finite.

element

public JSONArray element(int index,
                         double value)
Put or replace a double value. If the index is greater than the length of the JSONArray, then null elements will be added as necessary to pad it out.

Parameters:
index - The subscript.
value - A double value.
Returns:
this.
Throws:
JSONException - If the index is negative or if the value is not finite.

element

public JSONArray element(int index,
                         int value)
Put or replace an int value. If the index is greater than the length of the JSONArray, then null elements will be added as necessary to pad it out.

Parameters:
index - The subscript.
value - An int value.
Returns:
this.
Throws:
JSONException - If the index is negative.

element

public JSONArray element(int index,
                         long value)
Put or replace a long value. If the index is greater than the length of the JSONArray, then null elements will be added as necessary to pad it out.

Parameters:
index - The subscript.
value - A long value.
Returns:
this.
Throws:
JSONException - If the index is negative.

element

public JSONArray element(int index,
                         Map value)
Put a value in the JSONArray, where the value will be a JSONObject which is produced from a Map.

Parameters:
index - The subscript.
value - The Map value.
Returns:
this.
Throws:
JSONException - If the index is negative or if the the value is an invalid number.

element

public JSONArray element(int index,
                         Map value,
                         JsonConfig jsonConfig)
Put a value in the JSONArray, where the value will be a JSONObject which is produced from a Map.

Parameters:
index - The subscript.
value - The Map value.
Returns:
this.
Throws:
JSONException - If the index is negative or if the the value is an invalid number.

element

public JSONArray element(int index,
                         Object value)
Put or replace an object value in the JSONArray. If the index is greater than the length of the JSONArray, then null elements will be added as necessary to pad it out.

Parameters:
index - The subscript.
value - An object value. The value should be a Boolean, Double, Integer, JSONArray, JSONObject, JSONFunction, Long, String, JSONString or the JSONNull object.
Returns:
this.
Throws:
JSONException - If the index is negative or if the the value is an invalid number.

element

public JSONArray element(int index,
                         Object value,
                         JsonConfig jsonConfig)
Put or replace an object value in the JSONArray. If the index is greater than the length of the JSONArray, then null elements will be added as necessary to pad it out.

Parameters:
index - The subscript.
value - An object value. The value should be a Boolean, Double, Integer, JSONArray, JSONObject, JSONFunction, Long, String, JSONString or the JSONNull object.
Returns:
this.
Throws:
JSONException - If the index is negative or if the the value is an invalid number.

element

public JSONArray element(int index,
                         String value)
Put or replace a String value in the JSONArray. If the index is greater than the length of the JSONArray, then null elements will be added as necessary to pad it out.
The string may be a valid JSON formatted string, in tha case, it will be trabsformed to a JSONArray, JSONObjetc or JSONNull.

Parameters:
index - The subscript.
value - A String value.
Returns:
this.
Throws:
JSONException - If the index is negative or if the the value is an invalid number.

element

public JSONArray element(int index,
                         String value,
                         JsonConfig jsonConfig)
Put or replace a String value in the JSONArray. If the index is greater than the length of the JSONArray, then null elements will be added as necessary to pad it out.
The string may be a valid JSON formatted string, in tha case, it will be trabsformed to a JSONArray, JSONObjetc or JSONNull.

Parameters:
index - The subscript.
value - A String value.
Returns:
this.
Throws:
JSONException - If the index is negative or if the the value is an invalid number.

element

public JSONArray element(JSONNull value)
Append an JSON value. This increases the array's length by one.

Parameters:
value - An JSON value.
Returns:
this.

element

public JSONArray element(JSONObject value)
Append an JSON value. This increases the array's length by one.

Parameters:
value - An JSON value.
Returns:
this.

element

public JSONArray element(long value)
Append an long value. This increases the array's length by one.

Parameters:
value - A long value.
Returns:
this.

element

public JSONArray element(Map value)
Put a value in the JSONArray, where the value will be a JSONObject which is produced from a Map.

Parameters:
value - A Map value.
Returns:
this.

element

public JSONArray element(Map value,
                         JsonConfig jsonConfig)
Put a value in the JSONArray, where the value will be a JSONObject which is produced from a Map.

Parameters:
value - A Map value.
Returns:
this.

element

public JSONArray element(Object value)
Append an object value. This increases the array's length by one.

Parameters:
value - An object value. The value should be a Boolean, Double, Integer, JSONArray, JSONObject, JSONFunction, Long, String, JSONString or the JSONNull object.
Returns:
this.

element

public JSONArray element(Object value,
                         JsonConfig jsonConfig)
Append an object value. This increases the array's length by one.

Parameters:
value - An object value. The value should be a Boolean, Double, Integer, JSONArray, JSONObject, JSONFunction, Long, String, JSONString or the JSONNull object.
Returns:
this.

element

public JSONArray element(String value)
Append a String value. This increases the array's length by one.
The string may be a valid JSON formatted string, in tha case, it will be trabsformed to a JSONArray, JSONObjetc or JSONNull.

Parameters:
value - A String value.
Returns:
this.

element

public JSONArray element(String value,
                         JsonConfig jsonConfig)
Append a String value. This increases the array's length by one.
The string may be a valid JSON formatted string, in tha case, it will be trabsformed to a JSONArray, JSONObjetc or JSONNull.

Parameters:
value - A String value.
Returns:
this.

equals

public boolean equals(Object obj)
Specified by:
equals in interface Collection
Specified by:
equals in interface List
Overrides:
equals in class Object

get

public Object get(int index)
Get the object value associated with an index.

Specified by:
get in interface List
Parameters:
index - The index must be between 0 and size() - 1.
Returns:
An object value.

getBoolean

public boolean getBoolean(int index)
Get the boolean value associated with an index. The string values "true" and "false" are converted to boolean.

Parameters:
index - The index must be between 0 and size() - 1.
Returns:
The truth.
Throws:
JSONException - If there is no value for the index or if the value is not convertable to boolean.

getDouble

public double getDouble(int index)
Get the double value associated with an index.

Parameters:
index - The index must be between 0 and size() - 1.
Returns:
The value.
Throws:
JSONException - If the key is not found or if the value cannot be converted to a number.

getInt

public int getInt(int index)
Get the int value associated with an index.

Parameters:
index - The index must be between 0 and size() - 1.
Returns:
The value.
Throws:
JSONException - If the key is not found or if the value cannot be converted to a number. if the value cannot be converted to a number.

getJSONArray

public JSONArray getJSONArray(int index)
Get the JSONArray associated with an index.

Parameters:
index - The index must be between 0 and size() - 1.
Returns:
A JSONArray value.
Throws:
JSONException - If there is no value for the index. or if the value is not a JSONArray

getJSONObject

public JSONObject</