Package: org.grails.web.json

## [Java] Class JSONArray

- org.grails.web.json.JSONArray

- All Implemented Interfaces and Traits:
    JSONElement, java.util.List

      @java.lang.SuppressWarnings({ "unchecked", "rawtypes" })
      public class JSONArray
      extends java.lang.Object

  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 `put` methods for adding or replacing values. The values can be any of these types: `Boolean`, `JSONArray`, `JSONObject`, `Number`, `String`, or the `JSONObject.NULL 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:
  - An extra `,` (comma) may appear just before the closing bracket.
  - The `null` value will be inserted when there is `,` (comma) elision.
  - Strings may be quoted with `'` (single quote).
  - Strings do not need to be quoted at all if they do not begin with a quote or single quote, and if they do not contain leading or trailing spaces, and if they do not contain any of these characters: `{ } [ ] / \ : , = ; #` and if they do not look like numbers and if they are not the reserved words `true`, `false`, or `null`.
  - Values can be separated by `;` (semicolon) as well as by `,` (comma).
  - Numbers may have the `0-` (octal) or `0x-` (hex) prefix.
  - Comments written in the slashshlash, slashstar, and hash conventions will be ignored.
  Authors:
    JSON.org
  Version:
    2

- - ### Constructor Summary

    Constructors
    Constructor and description
    `JSONArray ()` Construct an empty JSONArray.
    `JSONArray (JSONTokener x)` Construct a JSONArray from a JSONTokener.
    `JSONArray (java.lang.String string)` Construct a JSONArray from a source sJSON text.
    `JSONArray (java.util.Collection collection)` Construct a JSONArray from a Collection.

  - ### Methods Summary

    Methods
    Type Params | Return Type | Name and description
    --- | --- | ---
    `` | `boolean` | `add(java.lang.Object o)`
    `` | `void` | `add(int i, java.lang.Object o)`
    `` | `boolean` | `addAll(java.util.Collection collection)`
    `` | `boolean` | `addAll(int i, java.util.Collection collection)`
    `` | `void` | `clear()`
    `` | `java.lang.Object` | `clone()`
    `` | `boolean` | `contains(java.lang.Object o)`
    `` | `boolean` | `containsAll(java.util.Collection collection)`
    `` | `void` | `ensureCapacity(int i)`
    `` | `boolean` | `equals(java.lang.Object obj)` If the passed object is a JSONArray, then the underlying collection must be equal.
    `` | `java.lang.Object` | `get(int index)` Get the object value associated with an index.
    `` | `boolean` | `getBoolean(int index)` Get the boolean value associated with an index.
    `` | `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.
    `` | `java.lang.String` | `getString(int index)` Get the string associated with an index.
    `` | `int` | `hashCode()`
    `` | `int` | `indexOf(java.lang.Object o)`
    `` | `boolean` | `isEmpty()`
    `` | `boolean` | `isNull(int index)` Determine if the value is null.
    `` | `java.util.Iterator` | `iterator()`
    `` | `java.lang.String` | `join(java.lang.String separator)` Make a string from the contents of this JSONArray.
    `` | `int` | `lastIndexOf(java.lang.Object o)`
    `` | `int` | `length()` Get the number of elements in the JSONArray, included nulls.
    `` | `java.util.ListIterator` | `listIterator()`
    `` | `java.util.ListIterator` | `listIterator(int i)`
    `` | `java.lang.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.
    `` | `java.lang.String` | `optString(int index)` Get the optional string value associated with an index.
    `` | `java.lang.String` | `optString(int index, java.lang.String defaultValue)` Get the optional string associated with an index.
    `` | `JSONArray` | `put(boolean value)` Append a boolean value.
    `` | `JSONArray` | `put(double value)` Append a double value.
    `` | `JSONArray` | `put(int value)` Append an int value.
    `` | `JSONArray` | `put(long value)` Append an long value.
    `` | `JSONArray` | `put(java.lang.Object value)` Append an object value.
    `` | `JSONArray` | `put(int index, boolean value)` Put or replace a boolean value in the JSONArray.
    `` | `JSONArray` | `put(int index, double value)` Put or replace a double value.
    `` | `JSONArray` | `put(int index, int value)` Put or replace an int value.
    `` | `JSONArray` | `put(int index, long value)` Put or replace a long value.
    `` | `JSONArray` | `put(int index, java.lang.Object value)` Put or replace an object value in the JSONArray.
    `` | `java.lang.Object` | `remove(int i)`
    `` | `boolean` | `remove(java.lang.Object o)`
    `` | `boolean` | `removeAll(java.util.Collection collection)`
    `` | `boolean` | `retainAll(java.util.Collection collection)`
    `` | `java.lang.Object` | `set(int i, java.lang.Object o)`
    `` | `int` | `size()`
    `` | `java.util.List` | `subList(int i, int i1)`
    `` | `java.lang.Object[]` | `toArray()`
    `` | `java.lang.Object[]` | `toArray(java.lang.Object[] objects)`
    `` | `JSONObject` | `toJSONObject(JSONArray names)` Produce a JSONObject by combining a JSONArray of names with the values of this JSONArray.
    `` | `java.lang.String` | `toString()` Make an JSON text of this JSONArray.
    `` | `java.lang.String` | `toString(int indentFactor)` Make a prettyprinted JSON text of this JSONArray.
    `` | `void` | `trimToSize()`
    `` | `java.io.Writer` | `write(java.io.Writer writer)` Write the contents of the JSONArray as JSON text to a writer.
    `` | `java.io.Writer` | `writeTo(java.io.Writer out)`

  - ### Inherited Methods Summary

    Inherited Methods
    Methods inherited from class | Name
    --- | ---
    `class java.lang.Object` | `java.lang.Object#wait(long, int), java.lang.Object#wait(long), java.lang.Object#wait(), java.lang.Object#equals(java.lang.Object), java.lang.Object#toString(), java.lang.Object#hashCode(), java.lang.Object#getClass(), java.lang.Object#notify(), java.lang.Object#notifyAll()`

- - ### Constructor Detail

    - #### public JSONArray()

      Construct an empty JSONArray.

    - #### public JSONArray(JSONTokener x)

      Construct a JSONArray from a JSONTokener.

      throws:
        JSONException If there is a syntax error.
      Parameters:
        `x` - A JSONTokener

    - #### public JSONArray(java.lang.String string)

      Construct a JSONArray from a source sJSON text.

      throws:
        JSONException If there is a syntax error.
      Parameters:
        `string` - A string that begins with `[` (left bracket) and ends with `]` (right bracket).

    - #### public JSONArray(java.util.Collection collection)

      Construct a JSONArray from a Collection.

      Parameters:
        `collection` - A Collection.

  - ### Method Detail

    - #### public boolean add(java.lang.Object o)

    - #### public void add(int i, java.lang.Object o)

    - #### public boolean addAll(java.util.Collection collection)

    - #### public boolean addAll(int i, java.util.Collection collection)

    - #### public void clear()

    - #### @java.lang.Override public java.lang.Object clone()

    - #### public boolean contains(java.lang.Object o)

    - #### public boolean containsAll(java.util.Collection collection)

    - #### public void ensureCapacity(int i)

    - #### @java.lang.Override public boolean equals(java.lang.Object obj)

      If the passed object is a JSONArray, then the underlying collection must be equal.

    - #### public java.lang.Object get(int index)

      Get the object value associated with an index.

      throws:
        JSONException If there is no value for the index.
      Parameters:
        `index` - The index must be between 0 and length() - 1.
      Returns:
        An object value.

    - #### public boolean getBoolean(int index)

      Get the boolean value associated with an index. The string values "true" and "false" are converted to boolean.

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

    - #### public double getDouble(int index)

      Get the double value associated with an index.

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

    - #### public int getInt(int index)

      Get the int value associated with an index.

      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.
      Parameters:
        `index` - The index must be between 0 and length() - 1.
      Returns:
        The value.

    - #### public JSONArray getJSONArray(int index)

      Get the JSONArray associated with an index.

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

    - #### public JSONObject getJSONObject(int index)

      Get the JSONObject associated with an index.

      throws:
        JSONException If there is no value for the index or if the value is not a JSONObject
      Parameters:
        `index` - subscript
      Returns:
        A JSONObject value.

    - #### public long getLong(int index)

      Get the long value associated with an index.

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

    - #### public java.lang.String getString(int index)

      Get the string associated with an index.

      throws:
        JSONException If there is no value for the index.
      Parameters:
        `index` - The index must be between 0 and length() - 1.
      Returns:
        A string value.

    - #### @java.lang.Override public int hashCode()

    - #### public int indexOf(java.lang.Object o)

    - #### public boolean isEmpty()

    - #### public boolean isNull(int index)

      Determine if the value is null.

      Parameters:
        `index` - The index must be between 0 and length() - 1.
      Returns:
        true if the value at the index is null, or if there is no value.

    - #### public java.util.Iterator iterator()

    - #### public java.lang.String join(java.lang.String separator)

      Make a string from the contents of this JSONArray. The `separator` string is inserted between each element. Warning: This method assumes that the data structure is acyclical.

      throws:
        JSONException If the array contains an invalid number.
      Parameters:
        `separator` - A string that will be inserted between the elements.
      Returns:
        a string.

    - #### public int lastIndexOf(java.lang.Object o)

    - #### public int length()

      Get the number of elements in the JSONArray, included nulls.

      Returns:
        The length (or size).

    - #### public java.util.ListIterator listIterator()

    - #### public java.util.ListIterator listIterator(int i)

    - #### public java.lang.Object opt(int index)

      Get the optional object value associated with an index.

      Parameters:
        `index` - The index must be between 0 and length() - 1.
      Returns:
        An object value, or null if there is no object at that index.

    - #### public boolean optBoolean(int index)

      Get the optional boolean value associated with an index. It returns false if there is no value at that index, or if the value is not Boolean.TRUE or the String "true".

      Parameters:
        `index` - The index must be between 0 and length() - 1.
      Returns:
        The truth.

    - #### public boolean optBoolean(int index, boolean defaultValue)

      Get the optional boolean value associated with an index. It returns the defaultValue if there is no value at that index or if it is not a Boolean or the String "true" or "false" (case insensitive).

      Parameters:
        `index` - The index must be between 0 and length() - 1.
        `defaultValue` - A boolean default.
      Returns:
        The truth.

    - #### public double optDouble(int index)

      Get the optional double value associated with an index. NaN is returned if there is no value for the index, or if the value is not a number and cannot be converted to a number.

      Parameters:
        `index` - The index must be between 0 and length() - 1.
      Returns:
        The value.

    - #### public double optDouble(int index, double defaultValue)

      Get the optional double value associated with an index. The defaultValue is returned if there is no value for the index, or if the value is not a number and cannot be converted to a number.

      Parameters:
        `index` - subscript
        `defaultValue` - The default value.
      Returns:
        The value.

    - #### public int optInt(int index)

      Get the optional int value associated with an index. Zero is returned if there is no value for the index, or if the value is not a number and cannot be converted to a number.

      Parameters:
        `index` - The index must be between 0 and length() - 1.
      Returns:
        The value.

    - #### public int optInt(int index, int defaultValue)

      Get the optional int value associated with an index. The defaultValue is returned if there is no value for the index, or if the value is not a number and cannot be converted to a number.

      Parameters:
        `index` - The index must be between 0 and length() - 1.
        `defaultValue` - The default value.
      Returns:
        The value.

    - #### public JSONArray optJSONArray(int index)

      Get the optional JSONArray associated with an index.

      Parameters:
        `index` - subscript
      Returns:
        A JSONArray value, or null if the index has no value, or if the value is not a JSONArray.

    - #### public JSONObject optJSONObject(int index)

      Get the optional JSONObject associated with an index. Null is returned if the key is not found, or null if the index has no value, or if the value is not a JSONObject.

      Parameters:
        `index` - The index must be between 0 and length() - 1.
      Returns:
        A JSONObject value.

    - #### public long optLong(int index)

      Get the optional long value associated with an index. Zero is returned if there is no value for the index, or if the value is not a number and cannot be converted to a number.

      Parameters:
        `index` - The index must be between 0 and length() - 1.
      Returns:
        The value.

    - #### public long optLong(int index, long defaultValue)

      Get the optional long value associated with an index. The defaultValue is returned if there is no value for the index, or if the value is not a number and cannot be converted to a number.

      Parameters:
        `index` - The index must be between 0 and length() - 1.
        `defaultValue` - The default value.
      Returns:
        The value.

    - #### public java.lang.String optString(int index)

      Get the optional string value associated with an index. It returns an empty string if there is no value at that index. If the value is not a string and is not null, then it is coverted to a string.

      Parameters:
        `index` - The index must be between 0 and length() - 1.
      Returns:
        A String value.

    - #### public java.lang.String optString(int index, java.lang.String defaultValue)

      Get the optional string associated with an index. The defaultValue is returned if the key is not found.

      Parameters:
        `index` - The index must be between 0 and length() - 1.
        `defaultValue` - The default value.
      Returns:
        A String value.

    - #### public JSONArray put(boolean value)

      Append a boolean value. This increases the array's length by one.

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

    - #### public JSONArray put(double value)

      Append a double value. This increases the array's length by one.

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

    - #### public JSONArray put(int value)

      Append an int value. This increases the array's length by one.

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

    - #### public JSONArray put(long value)

      Append an long value. This increases the array's length by one.

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

    - #### public JSONArray put(java.lang.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, JSObject, Long, or String, or the JSONObject.NULL object.
      Returns:
        this

    - #### public JSONArray put(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.

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

    - #### public JSONArray put(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.

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

    - #### public JSONArray put(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.

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

    - #### public JSONArray put(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.

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

    - #### public JSONArray put(int index, java.lang.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.

      throws:
        JSONException If the index is negative or if the the value is an invalid number.
      Parameters:
        `index` - The subscript.
        `value` - The value to put into the array.
      Returns:
        this

    - #### public java.lang.Object remove(int i)

    - #### public boolean remove(java.lang.Object o)

    - #### public boolean removeAll(java.util.Collection collection)

    - #### public boolean retainAll(java.util.Collection collection)

    - #### public java.lang.Object set(int i, java.lang.Object o)

    - #### public int size()

    - #### public java.util.List subList(int i, int i1)

    - #### public java.lang.Object[] toArray()

    - #### public java.lang.Object[] toArray(java.lang.Object[] objects)

    - #### public JSONObject toJSONObject(JSONArray names)

      Produce a JSONObject by combining a JSONArray of names with the values of this JSONArray.

      throws:
        JSONException If any of the names are null.
      Parameters:
        `names` - A JSONArray containing a list of key strings. These will be paired with the values.
      Returns:
        A JSONObject, or null if there are no names or if this JSONArray has no values.

    - #### @java.lang.Override public java.lang.String toString()

      Make an JSON text of this JSONArray. For compactness, no unnecessary whitespace is added. If it is not possible to produce a syntactically correct JSON text then null will be returned instead. This could occur if the array contains an invalid number.

      Warning: This method assumes that the data structure is acyclical.
      Returns:
        a printable, displayable, transmittable representation of the array.

    - #### public java.lang.String toString(int indentFactor)

      Make a prettyprinted JSON text of this JSONArray. Warning: This method assumes that the data structure is acyclical.

      throws:
        JSONException
      Parameters:
        `indentFactor` - The number of spaces to add to each level of indentation.
      Returns:
        a printable, displayable, transmittable representation of the object, beginning with `[` (left bracket) and ending with `]` (right bracket).

    - #### public void trimToSize()

    - #### public java.io.Writer write(java.io.Writer writer)

      Write the contents of the JSONArray as JSON text to a writer. For compactness, no whitespace is added.

      Warning: This method assumes that the data structure is acyclical.
      throws:
        JSONException
      Returns:
        The writer.

    - #### @java.lang.Override public java.io.Writer writeTo(java.io.Writer out)