twitter4j

## Class JSONArray

- java.lang.Object
- - twitter4j.JSONArray

    public class JSONArray
    extends Object

A dense indexed sequence of values. Values may be any mix of `JSONObjects`, other `JSONArrays`, Strings, Booleans, Integers, Longs, Doubles, `null` or `JSONObject.NULL`. Values may not be `NaNs`, `infinities`, or of any type not listed here. `JSONArray` has the same type coercion behavior and optional/mandatory accessors as `JSONObject`. See that class' documentation for details. Warning: this class represents null in two incompatible ways: the standard Java `null` reference, and the sentinel value `JSONObject.NULL`. In particular, `get` fails if the requested index holds the null reference, but succeeds if it holds `JSONObject.NULL`. Instances of this class are not thread safe. Although this class is non-final, it was not designed for inheritance and should not be subclassed. In particular, self-use by overridable methods is not specified. See Effective Java Item 17, "Design and Document or inheritance or else prohibit it" for further information.

### Constructor Summary

Constructors
Constructor and Description
`JSONArray()` Creates a `JSONArray` with no values.
`JSONArray(Collection copyFrom)` Creates a new `JSONArray` by copying all values from the given collection.
`JSONArray(JSONTokener readFrom)` Creates a new `JSONArray` with values from the next array in the tokener.
`JSONArray(Object array)` Creates a new `JSONArray` with values from the given primitive array.
`JSONArray(String json)` Creates a new `JSONArray` with values from the JSON string.

### Method Summary

All Methods Instance Methods Concrete Methods
`boolean` `equals(Object o)`
`Object` `get(int index)` Returns the value at `index`.
`boolean` `getBoolean(int index)` Returns the value at `index` if it exists and is a boolean or can be coerced to a boolean.
`double` `getDouble(int index)` Returns the value at `index` if it exists and is a double or can be coerced to a double.
`int` `getInt(int index)` Returns the value at `index` if it exists and is an int or can be coerced to an int.
`JSONArray` `getJSONArray(int index)` Returns the value at `index` if it exists and is a `JSONArray`.
`JSONObject` `getJSONObject(int index)` Returns the value at `index` if it exists and is a `JSONObject`.
`long` `getLong(int index)` Returns the value at `index` if it exists and is a long or can be coerced to a long.
`String` `getString(int index)` Returns the value at `index` if it exists, coercing it if necessary.
`int` `hashCode()`
`boolean` `isNull(int index)` Returns true if this array has no value at `index`, or if its value is the `null` reference or `JSONObject.NULL`.
`String` `join(String separator)` Returns a new string by alternating this array's values with `separator`.
`int` `length()`
`Object` `opt(int index)` Returns the value at `index`, or null if the array has no value at `index`.
`boolean` `optBoolean(int index)` Returns the value at `index` if it exists and is a boolean or can be coerced to a boolean.
`boolean` `optBoolean(int index, boolean fallback)` Returns the value at `index` if it exists and is a boolean or can be coerced to a boolean.
`double` `optDouble(int index)` Returns the value at `index` if it exists and is a double or can be coerced to a double.
`double` `optDouble(int index, double fallback)` Returns the value at `index` if it exists and is a double or can be coerced to a double.
`int` `optInt(int index)` Returns the value at `index` if it exists and is an int or can be coerced to an int.
`int` `optInt(int index, int fallback)` Returns the value at `index` if it exists and is an int or can be coerced to an int.
`JSONArray` `optJSONArray(int index)` Returns the value at `index` if it exists and is a `JSONArray`.
`JSONObject` `optJSONObject(int index)` Returns the value at `index` if it exists and is a `JSONObject`.
`long` `optLong(int index)` Returns the value at `index` if it exists and is a long or can be coerced to a long.
`long` `optLong(int index, long fallback)` Returns the value at `index` if it exists and is a long or can be coerced to a long.
`String` `optString(int index)` Returns the value at `index` if it exists, coercing it if necessary.
`String` `optString(int index, String fallback)` Returns the value at `index` if it exists, coercing it if necessary.
`JSONArray` `put(boolean value)` Appends `value` to the end of this array.
`JSONArray` `put(double value)` Appends `value` to the end of this array.
`JSONArray` `put(int value)` Appends `value` to the end of this array.
`JSONArray` `put(int index, boolean value)` Sets the value at `index` to `value`, null padding this array to the required length if necessary.
`JSONArray` `put(int index, double value)` Sets the value at `index` to `value`, null padding this array to the required length if necessary.
`JSONArray` `put(int index, int value)` Sets the value at `index` to `value`, null padding this array to the required length if necessary.
`JSONArray` `put(int index, long value)` Sets the value at `index` to `value`, null padding this array to the required length if necessary.
`JSONArray` `put(int index, Object value)` Sets the value at `index` to `value`, null padding this array to the required length if necessary.
`JSONArray` `put(long value)` Appends `value` to the end of this array.
`JSONArray` `put(Object value)` Appends `value` to the end of this array.
`Object` `remove(int index)` Removes and returns the value at `index`, or null if the array has no value at `index`.
`JSONObject` `toJSONObject(JSONArray names)` Returns a new object whose values are the values in this array, and whose names are the values in `names`.
`String` `toString()` Encodes this array as a compact JSON string, such as:
`String` `toString(int indentSpaces)` Encodes this array as a human readable JSON string for debugging, such as:

### Methods inherited from class java.lang.Object

`getClass, notify, notifyAll, wait, wait, wait`

### Constructor Detail

#### JSONArray

    public JSONArray()

Creates a `JSONArray` with no values.

#### JSONArray

    public JSONArray(Collection copyFrom)

Creates a new `JSONArray` by copying all values from the given collection.

Parameters:
  `copyFrom` - a collection whose values are of supported types. Unsupported values are not permitted and will yield an array in an inconsistent state.

#### JSONArray

    public JSONArray(JSONTokener readFrom)
              throws JSONException

Creates a new `JSONArray` with values from the next array in the tokener.

Parameters:
  `readFrom` - a tokener whose nextValue() method will yield a `JSONArray`.
Throws:
  `JSONException` - if the parse fails or doesn't yield a `JSONArray`.

#### JSONArray

    public JSONArray(String json)
              throws JSONException

Creates a new `JSONArray` with values from the JSON string.

Parameters:
  `json` - a JSON-encoded string containing an array.
Throws:
  `JSONException` - if the parse fails or doesn't yield a `JSONArray`.

#### JSONArray

    public JSONArray(Object array)
              throws JSONException

Creates a new `JSONArray` with values from the given primitive array.

Parameters:
  `array` - The values to use.
Throws:
  `JSONException` - if any of the values are non-finite double values (i.e. NaN or infinite)

### Method Detail

#### length

    public int length()

Returns:
  Returns the number of values in this array.

#### put

    public JSONArray put(boolean value)

Appends `value` to the end of this array.

Parameters:
  `value` - The value to append.
Returns:
  this array.

#### put

    public JSONArray put(double value)
                  throws JSONException

Appends `value` to the end of this array.

Parameters:
  `value` - a finite value. May not be `NaNs` or `infinities`.
Returns:
  this array.
Throws:
  `JSONException` - If the value is unacceptable.

#### put

    public JSONArray put(int value)

Appends `value` to the end of this array.

Parameters:
  `value` - The value to append.
Returns:
  this array.

#### put

    public JSONArray put(long value)

Appends `value` to the end of this array.

Parameters:
  `value` - The value to append.
Returns:
  this array.

#### put

    public JSONArray put(Object value)

Appends `value` to the end of this array.

Parameters:
  `value` - a `JSONObject`, `JSONArray`, String, Boolean, Integer, Long, Double, `JSONObject.NULL`, or `null`. May not be `NaNs` or `infinities`. Unsupported values are not permitted and will cause the array to be in an inconsistent state.
Returns:
  this array.

#### put

    public JSONArray put(int index,
                         boolean value)
                  throws JSONException

Sets the value at `index` to `value`, null padding this array to the required length if necessary. If a value already exists at `index`, it will be replaced.

Parameters:
  `index` - Where to put the value.
  `value` - The value to set.
Returns:
  this array.
Throws:
  `JSONException` - This should never happen.

#### put

    public JSONArray put(int index,
                         double value)
                  throws JSONException

Sets the value at `index` to `value`, null padding this array to the required length if necessary. If a value already exists at `index`, it will be replaced.

Parameters:
  `index` - Where to put the value.
  `value` - a finite value. May not be `NaNs` or `infinities`.
Returns:
  this array.
Throws:
  `JSONException` - If the value is not a finite value.

#### put

    public JSONArray put(int index,
                         int value)
                  throws JSONException

Sets the value at `index` to `value`, null padding this array to the required length if necessary. If a value already exists at `index`, it will be replaced.

Parameters:
  `index` - Where to put the value.
  `value` - The value to set.
Returns:
  this array.
Throws:
  `JSONException` - Should never actually happen.

#### put

    public JSONArray put(int index,
                         long value)
                  throws JSONException

Sets the value at `index` to `value`, null padding this array to the required length if necessary. If a value already exists at `index`, it will be replaced.

Parameters:
  `index` - Where to put the value.
  `value` - The value to set.
Returns:
  this array.
Throws:
  `JSONException` - Should never actually happen.

#### put

    public JSONArray put(int index,
                         Object value)
                  throws JSONException

Sets the value at `index` to `value`, null padding this array to the required length if necessary. If a value already exists at `index`, it will be replaced.

Parameters:
  `index` - Where to put the value.
  `value` - a `JSONObject`, `JSONArray`, String, Boolean, Integer, Long, Double, `JSONObject.NULL`, or `null`. May not be `NaNs` or `infinities`.
Returns:
  this array.
Throws:
  `JSONException` - If the value cannot be represented as a finite double value.

#### isNull

    public boolean isNull(int index)

Returns true if this array has no value at `index`, or if its value is the `null` reference or `JSONObject.NULL`.

Parameters:
  `index` - Which value to check.
Returns:
  true if the value is null.

#### get

    public Object get(int index)
               throws JSONException

Returns the value at `index`.

Parameters:
  `index` - Which value to get.
Returns:
  the value at the specified location.
Throws:
  `JSONException` - if this array has no value at `index`, or if that value is the `null` reference. This method returns normally if the value is `JSONObject#NULL`.

#### opt

    public Object opt(int index)

Returns the value at `index`, or null if the array has no value at `index`.

Parameters:
  `index` - Which value to get.
Returns:
  the value at the specified location.

#### remove

    public Object remove(int index)

Removes and returns the value at `index`, or null if the array has no value at `index`.

Parameters:
  `index` - Which value to remove.
Returns:
  The value previously at the specified location.

#### getBoolean

    public boolean getBoolean(int index)
                       throws JSONException

Returns the value at `index` if it exists and is a boolean or can be coerced to a boolean.

Parameters:
  `index` - Which value to get.
Returns:
  the value at the specified location.
Throws:
  `JSONException` - if the value at `index` doesn't exist or cannot be coerced to a boolean.

#### optBoolean

    public boolean optBoolean(int index)

Returns the value at `index` if it exists and is a boolean or can be coerced to a boolean. Returns false otherwise.

Parameters:
  `index` - Which value to get.
Returns:
  the value at the specified location.

#### optBoolean

    public boolean optBoolean(int index,
                              boolean fallback)

Returns the value at `index` if it exists and is a boolean or can be coerced to a boolean. Returns `fallback` otherwise.

Parameters:
  `index` - Which value to get.
  `fallback` - the fallback value to return if no value exists.
Returns:
  the value at the specified location or the fallback value.

#### getDouble

    public double getDouble(int index)
                     throws JSONException

Returns the value at `index` if it exists and is a double or can be coerced to a double.

Parameters:
  `index` - Which value to get.
Returns:
  the value at the specified location.
Throws:
  `JSONException` - if the value at `index` doesn't exist or cannot be coerced to a double.

#### optDouble

    public double optDouble(int index)

Returns the value at `index` if it exists and is a double or can be coerced to a double. Returns `NaN` otherwise.

Parameters:
  `index` - Which value to get.
Returns:
  the value at the specified location.

#### optDouble

    public double optDouble(int index,
                            double fallback)

Returns the value at `index` if it exists and is a double or can be coerced to a double. Returns `fallback` otherwise.

Parameters:
  `index` - Which value to get.
  `fallback` - The fallback value to use if no value is at the specified location.
Returns:
  the value at the specified location or the fallback value.

#### getInt

    public int getInt(int index)
               throws JSONException

Returns the value at `index` if it exists and is an int or can be coerced to an int.

Parameters:
  `index` - Which value to get.
Returns:
  the value at the specified location.
Throws:
  `JSONException` - if the value at `index` doesn't exist or cannot be coerced to a int.

#### optInt

    public int optInt(int index)

Returns the value at `index` if it exists and is an int or can be coerced to an int. Returns 0 otherwise.

Parameters:
  `index` - Which value to get.
Returns:
  the value at the specified location.

#### optInt

    public int optInt(int index,
                      int fallback)

Returns the value at `index` if it exists and is an int or can be coerced to an int. Returns `fallback` otherwise.

Parameters:
  `index` - Which value to get.
  `fallback` - The fallback value to use if no value is at the specified location.
Returns:
  the value at the specified location or the fallback value.

#### getLong

    public long getLong(int index)
                 throws JSONException

Returns the value at `index` if it exists and is a long or can be coerced to a long.

Parameters:
  `index` - Which value to get.
Returns:
  the value at the specified location.
Throws:
  `JSONException` - if the value at `index` doesn't exist or cannot be coerced to a long.

#### optLong

    public long optLong(int index)

Returns the value at `index` if it exists and is a long or can be coerced to a long. Returns 0 otherwise.

Parameters:
  `index` - Which value to get.
Returns:
  the value at the specified location.

#### optLong

    public long optLong(int index,
                        long fallback)

Returns the value at `index` if it exists and is a long or can be coerced to a long. Returns `fallback` otherwise.

Parameters:
  `index` - Which value to get.
  `fallback` - The fallback value to use if no value is at the specified location.
Returns:
  the value at the specified location or the fallback value.

#### getString

    public String getString(int index)
                     throws JSONException

Returns the value at `index` if it exists, coercing it if necessary.

Parameters:
  `index` - Which value to get.
Returns:
  the value at the specified location.
Throws:
  `JSONException` - if no such value exists.

#### optString

    public String optString(int index)

Returns the value at `index` if it exists, coercing it if necessary. Returns the empty string if no such value exists.

Parameters:
  `index` - Which value to get.
Returns:
  the value at the specified location.

#### optString

    public String optString(int index,
                            String fallback)

Returns the value at `index` if it exists, coercing it if necessary. Returns `fallback` if no such value exists.

Parameters:
  `index` - Which value to get.
  `fallback` - The fallback value to use if no value is at the specified location.
Returns:
  the value at the specified location or the fallback value.

#### getJSONArray

    public JSONArray getJSONArray(int index)
                           throws JSONException

Returns the value at `index` if it exists and is a `JSONArray`.

Parameters:
  `index` - Which value to get.
Returns:
  the value at the specified location.
Throws:
  `JSONException` - if the value doesn't exist or is not a `JSONArray`.

#### optJSONArray

    public JSONArray optJSONArray(int index)

Returns the value at `index` if it exists and is a `JSONArray`. Returns null otherwise.

Parameters:
  `index` - Which value to get.
Returns:
  the value at the specified location.

#### getJSONObject

    public JSONObject getJSONObject(int index)
                             throws JSONException

Returns the value at `index` if it exists and is a `JSONObject`.

Parameters:
  `index` - Which value to get.
Returns:
  the value at the specified location.
Throws:
  `JSONException` - if the value doesn't exist or is not a `JSONObject`.

#### optJSONObject

    public JSONObject optJSONObject(int index)

Returns the value at `index` if it exists and is a `JSONObject`. Returns null otherwise.

Parameters:
  `index` - Which value to get.
Returns:
  the value at the specified location.

#### toJSONObject

    public JSONObject toJSONObject(JSONArray names)
                            throws JSONException

Returns a new object whose values are the values in this array, and whose names are the values in `names`. Names and values are paired up by index from 0 through to the shorter array's length. Names that are not strings will be coerced to strings. This method returns null if either array is empty.

Parameters:
  `names` - The names to apply to the returned values.
Returns:
  the newly constructed object.
Throws:
  `JSONException` - Should not be possible.

#### join

    public String join(String separator)
                throws JSONException

Returns a new string by alternating this array's values with `separator`. This array's string values are quoted and have their special characters escaped. For example, the array containing the strings '12" pizza', 'taco' and 'soda' joined on '+' returns this:

    "12\" pizza"+"taco"+"soda"

Parameters:
  `separator` - The string used to separate the returned values.
Returns:
  the conjoined values.
Throws:
  `JSONException` - Only if there is a coding error.

#### toString

    public String toString()

Encodes this array as a compact JSON string, such as:

    [94043,90210]

Overrides:
  `toString` in class `Object`
Returns:
  The string form of this array.

#### toString

    public String toString(int indentSpaces)
                    throws JSONException

Encodes this array as a human readable JSON string for debugging, such as:

     [
         94043,
         90210
     ]

Parameters:
  `indentSpaces` - the number of spaces to indent for each level of nesting.
Returns:
  The string form of this array.
Throws:
  `JSONException` - Only if there is a coding error.

#### equals

    public boolean equals(Object o)

Overrides:
  `equals` in class `Object`

#### hashCode

    public int hashCode()

Overrides:
  `hashCode` in class `Object`