public class JSONArray extends Object implements Iterable<Object>
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
coercion 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:
,
(comma) may appear just
before the closing bracket.null
value will be inserted when there is ,
(comma) elision.'
(single
quote).{ } [ ] / \ : , #
and if they do not look like numbers and
if they are not the reserved words true
, false
, or
null
.Constructor and Description |
---|
JSONArray()
Construct an empty JSONArray.
|
JSONArray(Collection<?> collection)
Construct a JSONArray from a Collection.
|
JSONArray(int initialCapacity)
Construct a JSONArray with the specified initial capacity.
|
JSONArray(Iterable<?> iter)
Construct a JSONArray from an Iterable.
|
JSONArray(JSONArray array)
Construct a JSONArray from another JSONArray.
|
JSONArray(JSONTokener x)
Construct a JSONArray from a JSONTokener.
|
JSONArray(Object array)
Construct a JSONArray from an array.
|
JSONArray(String source)
Construct a JSONArray from a source JSON text.
|
Modifier and Type | Method and Description |
---|---|
void |
clear()
Removes all of the elements from this JSONArray.
|
Object |
get(int index)
Get the object value associated with an index.
|
BigDecimal |
getBigDecimal(int index)
Get the BigDecimal value associated with an index.
|
BigInteger |
getBigInteger(int index)
Get the BigInteger 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.
|
<E extends Enum<E>> |
getEnum(Class<E> clazz,
int index)
Get the enum value associated with an index.
|
float |
getFloat(int index)
Get the float value associated with a key.
|
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.
|
Number |
getNumber(int index)
Get the Number value associated with a key.
|
String |
getString(int index)
Get the string associated with an index.
|
boolean |
isEmpty()
Check if JSONArray is empty.
|
boolean |
isNull(int index)
Determine if the value is
null . |
Iterator<Object> |
iterator() |
String |
join(String separator)
Make a string from the contents of this JSONArray.
|
int |
length()
Get the number of elements in the JSONArray, included nulls.
|
Object |
opt(int index)
Get the optional object value associated with an index.
|
BigDecimal |
optBigDecimal(int index,
BigDecimal defaultValue)
Get the optional BigDecimal value associated with an index.
|
BigInteger |
optBigInteger(int index,
BigInteger defaultValue)
Get the optional BigInteger 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.
|
<E extends Enum<E>> |
optEnum(Class<E> clazz,
int index)
Get the enum value associated with a key.
|
<E extends Enum<E>> |
optEnum(Class<E> clazz,
int index,
E defaultValue)
Get the enum value associated with a key.
|
float |
optFloat(int index)
Get the optional float value associated with an index.
|
float |
optFloat(int index,
float defaultValue)
Get the optional float 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.
|
Number |
optNumber(int index)
Get an optional
Number value associated with a key, or null
if there is no such key or if the value is not a number. |
Number |
optNumber(int index,
Number defaultValue)
Get an optional
Number value associated with a key, or the default if there
is no such key or if the value is not a number. |
Object |
optQuery(JSONPointer jsonPointer)
Queries and returns a value from this object using
jsonPointer , or
returns null if the query fails due to a missing key. |
Object |
optQuery(String jsonPointer)
Queries and returns a value from this object using
jsonPointer , or
returns null if the query fails due to a missing key. |
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.
|
JSONArray |
put(boolean value)
Append a boolean value.
|
JSONArray |
put(Collection<?> value)
Put a value in the JSONArray, where the value will be a JSONArray which
is produced from a Collection.
|
JSONArray |
put(double value)
Append a double value.
|
JSONArray |
put(float value)
Append a float value.
|
JSONArray |
put(int value)
Append an int value.
|
JSONArray |
put(int index,
boolean value)
Put or replace a boolean value in the JSONArray.
|
JSONArray |
put(int index,
Collection<?> value)
Put a value in the JSONArray, where the value will be a JSONArray which
is produced from a Collection.
|
JSONArray |
put(int index,
double value)
Put or replace a double value.
|
JSONArray |
put(int index,
float value)
Put or replace a float 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,
Map<?,?> value)
Put a value in the JSONArray, where the value will be a JSONObject that
is produced from a Map.
|
JSONArray |
put(int index,
Object value)
Put or replace an object value in the JSONArray.
|
JSONArray |
put(long value)
Append an long value.
|
JSONArray |
put(Map<?,?> value)
Put a value in the JSONArray, where the value will be a JSONObject which
is produced from a Map.
|
JSONArray |
put(Object value)
Append an object value.
|
JSONArray |
putAll(Collection<?> collection)
Put a collection's elements in to the JSONArray.
|
JSONArray |
putAll(Iterable<?> iter)
Put an Iterable's elements in to the JSONArray.
|
JSONArray |
putAll(JSONArray array)
Put a JSONArray's elements in to the JSONArray.
|
JSONArray |
putAll(Object array)
Put an array's elements in to the JSONArray.
|
Object |
query(JSONPointer jsonPointer)
Uses a user initialized JSONPointer and tries to
match it to an item within this JSONArray.
|
Object |
query(String jsonPointer)
Creates a JSONPointer using an initialization string and tries to
match it to an item within this JSONArray.
|
Object |
remove(int index)
Remove an index and close the hole.
|
boolean |
similar(Object other)
Determine if two JSONArrays are similar.
|
JSONObject |
toJSONObject(JSONArray names)
Produce a JSONObject by combining a JSONArray of names with the values of
this JSONArray.
|
List<Object> |
toList()
Returns a java.util.List containing all of the elements in this array.
|
String |
toString()
Make a JSON text of this JSONArray.
|
String |
toString(int indentFactor)
Make a pretty-printed JSON text of this JSONArray.
|
Writer |
write(Writer writer)
Write the contents of the JSONArray as JSON text to a writer.
|
Writer |
write(Writer writer,
int indentFactor,
int indent)
Write the contents of the JSONArray as JSON text to a writer.
|
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
forEach, spliterator
public JSONArray()
public JSONArray(JSONTokener x) throws JSONException
x
- A JSONTokenerJSONException
- If there is a syntax error.public JSONArray(String source) throws JSONException
source
- A string that begins with [
(left
bracket) and ends with ]
(right bracket).JSONException
- If there is a syntax error.public JSONArray(Collection<?> collection)
collection
- A Collection.public JSONArray(Iterable<?> iter)
iter
- A Iterable collection.public JSONArray(JSONArray array)
array
- A array.public JSONArray(Object array) throws JSONException
array
- Array. If the parameter passed is null, or not an array, an
exception will be thrown.JSONException
- If not an array or if an array value is non-finite number.NullPointerException
- Thrown if the array parameter is null.public JSONArray(int initialCapacity) throws JSONException
initialCapacity
- the initial capacity of the JSONArray.JSONException
- If the initial capacity is negative.public Object get(int index) throws JSONException
index
- The index must be between 0 and length() - 1.JSONException
- If there is no value for the index.public boolean getBoolean(int index) throws JSONException
index
- The index must be between 0 and length() - 1.JSONException
- If there is no value for the index or if the value is not
convertible to boolean.public double getDouble(int index) throws JSONException
index
- The index must be between 0 and length() - 1.JSONException
- If the key is not found or if the value cannot be converted
to a number.public float getFloat(int index) throws JSONException
index
- The index must be between 0 and length() - 1.JSONException
- if the key is not found or if the value is not a Number
object and cannot be converted to a number.public Number getNumber(int index) throws JSONException
index
- The index must be between 0 and length() - 1.JSONException
- if the key is not found or if the value is not a Number
object and cannot be converted to a number.public <E extends Enum<E>> E getEnum(Class<E> clazz, int index) throws JSONException
E
- Enum Typeclazz
- The type of enum to retrieve.index
- The index must be between 0 and length() - 1.JSONException
- if the key is not found or if the value cannot be converted
to an enum.public BigDecimal getBigDecimal(int index) throws JSONException
BigDecimal.BigDecimal(double)
constructor
will be used. See notes on the constructor for conversion issues that
may arise.index
- The index must be between 0 and length() - 1.JSONException
- If the key is not found or if the value cannot be converted
to a BigDecimal.public BigInteger getBigInteger(int index) throws JSONException
index
- The index must be between 0 and length() - 1.JSONException
- If the key is not found or if the value cannot be converted
to a BigInteger.public int getInt(int index) throws JSONException
index
- The index must be between 0 and length() - 1.JSONException
- If the key is not found or if the value is not a number.public JSONArray getJSONArray(int index) throws JSONException
index
- The index must be between 0 and length() - 1.JSONException
- If there is no value for the index. or if the value is not a
JSONArraypublic JSONObject getJSONObject(int index) throws JSONException
index
- subscriptJSONException
- If there is no value for the index or if the value is not a
JSONObjectpublic long getLong(int index) throws JSONException
index
- The index must be between 0 and length() - 1.JSONException
- If the key is not found or if the value cannot be converted
to a number.public String getString(int index) throws JSONException
index
- The index must be between 0 and length() - 1.JSONException
- If there is no string value for the index.public boolean isNull(int index)
null
.index
- The index must be between 0 and length() - 1.null
, or if there is no value.public String join(String separator) throws JSONException
separator
string is inserted between each element. Warning:
This method assumes that the data structure is acyclical.separator
- A string that will be inserted between the elements.JSONException
- If the array contains an invalid number.public int length()
public void clear()
public Object opt(int index)
index
- The index must be between 0 and length() - 1. If not, null is returned.public boolean optBoolean(int index)
index
- The index must be between 0 and length() - 1.public boolean optBoolean(int index, boolean defaultValue)
index
- The index must be between 0 and length() - 1.defaultValue
- A boolean default.public double optDouble(int index)
index
- The index must be between 0 and length() - 1.public double optDouble(int index, double defaultValue)
index
- subscriptdefaultValue
- The default value.public float optFloat(int index)
index
- The index must be between 0 and length() - 1.public float optFloat(int index, float defaultValue)
index
- subscriptdefaultValue
- The default value.public int optInt(int index)
index
- The index must be between 0 and length() - 1.public int optInt(int index, int defaultValue)
index
- The index must be between 0 and length() - 1.defaultValue
- The default value.public <E extends Enum<E>> E optEnum(Class<E> clazz, int index)
E
- Enum Typeclazz
- The type of enum to retrieve.index
- The index must be between 0 and length() - 1.public <E extends Enum<E>> E optEnum(Class<E> clazz, int index, E defaultValue)
E
- Enum Typeclazz
- The type of enum to retrieve.index
- The index must be between 0 and length() - 1.defaultValue
- The default in case the value is not foundpublic BigInteger optBigInteger(int index, BigInteger defaultValue)
index
- The index must be between 0 and length() - 1.defaultValue
- The default value.public BigDecimal optBigDecimal(int index, BigDecimal defaultValue)
BigDecimal.BigDecimal(double)
constructor will be used. See notes on the constructor for conversion
issues that may arise.index
- The index must be between 0 and length() - 1.defaultValue
- The default value.public JSONArray optJSONArray(int index)
index
- subscriptpublic JSONObject optJSONObject(int index)
index
- The index must be between 0 and length() - 1.public long optLong(int index)
index
- The index must be between 0 and length() - 1.public long optLong(int index, long defaultValue)
index
- The index must be between 0 and length() - 1.defaultValue
- The default value.public Number optNumber(int index)
Number
value associated with a key, or null
if there is no such key or if the value is not a number. If the value is a string,
an attempt will be made to evaluate it as a number (BigDecimal
). This method
would be used in cases where type coercion of the number value is unwanted.index
- The index must be between 0 and length() - 1.public Number optNumber(int index, Number defaultValue)
Number
value associated with a key, or the default if there
is no such key or if the value is not a number. If the value is a string,
an attempt will be made to evaluate it as a number (BigDecimal
). This method
would be used in cases where type coercion of the number value is unwanted.index
- The index must be between 0 and length() - 1.defaultValue
- The default.public String optString(int index)
index
- The index must be between 0 and length() - 1.public String optString(int index, String defaultValue)
index
- The index must be between 0 and length() - 1.defaultValue
- The default value.public JSONArray put(boolean value)
value
- A boolean value.public JSONArray put(Collection<?> value)
value
- A Collection value.JSONException
- If the value is non-finite number.public JSONArray put(double value) throws JSONException
value
- A double value.JSONException
- if the value is not finite.public JSONArray put(float value) throws JSONException
value
- A float value.JSONException
- if the value is not finite.public JSONArray put(int value)
value
- An int value.public JSONArray put(long value)
value
- A long value.public JSONArray put(Map<?,?> value)
value
- A Map value.JSONException
- If a value in the map is non-finite number.NullPointerException
- If a key in the map is null
public JSONArray put(Object value)
value
- An object value. The value should be a Boolean, Double,
Integer, JSONArray, JSONObject, Long, or String, or the
JSONObject.NULL object.JSONException
- If the value is non-finite number.public JSONArray put(int index, boolean value) throws JSONException
index
- The subscript.value
- A boolean value.JSONException
- If the index is negative.public JSONArray put(int index, Collection<?> value) throws JSONException
index
- The subscript.value
- A Collection value.JSONException
- If the index is negative or if the value is non-finite.public JSONArray put(int index, double value) throws JSONException
index
- The subscript.value
- A double value.JSONException
- If the index is negative or if the value is non-finite.public JSONArray put(int index, float value) throws JSONException
index
- The subscript.value
- A float value.JSONException
- If the index is negative or if the value is non-finite.public JSONArray put(int index, int value) throws JSONException
index
- The subscript.value
- An int value.JSONException
- If the index is negative.public JSONArray put(int index, long value) throws JSONException
index
- The subscript.value
- A long value.JSONException
- If the index is negative.public JSONArray put(int index, Map<?,?> value) throws JSONException
index
- The subscript.value
- The Map value.JSONException
- If the index is negative or if the the value is an invalid
number.NullPointerException
- If a key in the map is null
public JSONArray put(int index, Object value) throws JSONException
index
- The subscript.value
- The value to put into the array. The value should be a
Boolean, Double, Integer, JSONArray, JSONObject, Long, or
String, or the JSONObject.NULL object.JSONException
- If the index is negative or if the the value is an invalid
number.public JSONArray putAll(Collection<?> collection)
collection
- A Collection.public JSONArray putAll(Iterable<?> iter)
iter
- An Iterable.public JSONArray putAll(JSONArray array)
array
- A JSONArray.public JSONArray putAll(Object array) throws JSONException
array
- Array. If the parameter passed is null, or not an array or Iterable, an
exception will be thrown.JSONException
- If not an array, JSONArray, Iterable or if an value is non-finite number.NullPointerException
- Thrown if the array parameter is null.public Object query(String jsonPointer)
[ {"b":"c"} ]and this JSONPointer string:
"/0/b"Then this method will return the String "c" A JSONPointerException may be thrown from code called by this method.
jsonPointer
- string that can be used to create a JSONPointerpublic Object query(JSONPointer jsonPointer)
[ {"b":"c"} ]and this JSONPointer:
"/0/b"Then this method will return the String "c" A JSONPointerException may be thrown from code called by this method.
jsonPointer
- string that can be used to create a JSONPointerpublic Object optQuery(String jsonPointer)
jsonPointer
, or
returns null if the query fails due to a missing key.jsonPointer
- the string representation of the JSON pointernull
IllegalArgumentException
- if jsonPointer
has invalid syntaxpublic Object optQuery(JSONPointer jsonPointer)
jsonPointer
, or
returns null if the query fails due to a missing key.jsonPointer
- The JSON pointernull
IllegalArgumentException
- if jsonPointer
has invalid syntaxpublic Object remove(int index)
index
- The index of the element to be removed.public boolean similar(Object other)
other
- The other JSONArraypublic JSONObject toJSONObject(JSONArray names) throws JSONException
names
- A JSONArray containing a list of key strings. These will be
paired with the values.JSONException
- If any of the names are null.public String toString()
Warning: This method assumes that the data structure is acyclical.
public String toString(int indentFactor) throws JSONException
If
indentFactor > 0
and the JSONArray
has only
one element, then the array will be output on a single line:
[1]
If an array has 2 or more elements, then it will be output across multiple lines:
[
1,
"value 2",
3
]
Warning: This method assumes that the data structure is acyclical.
indentFactor
- The number of spaces to add to each level of indentation.[
(left
bracket) and ending with ]
(right bracket).JSONException
- if a called function failspublic Writer write(Writer writer) throws JSONException
Warning: This method assumes that the data structure is acyclical.
writer
- the writer objectJSONException
- if a called function failspublic Writer write(Writer writer, int indentFactor, int indent) throws JSONException
If
indentFactor > 0
and the JSONArray
has only
one element, then the array will be output on a single line:
[1]
If an array has 2 or more elements, then it will be output across multiple lines:
[
1,
"value 2",
3
]
Warning: This method assumes that the data structure is acyclical.
writer
- Writes the serialized JSONindentFactor
- The number of spaces to add to each level of indentation.indent
- The indentation of the top level.JSONException
- if a called function fails or unable to writepublic List<Object> toList()
Warning: This method assumes that the data structure is acyclical.
public boolean isEmpty()