Package org.json.simple
Class JsonArray
- java.lang.Object
-
- java.util.AbstractCollection<E>
-
- java.util.AbstractList<E>
-
- java.util.ArrayList<Object>
-
- org.json.simple.JsonArray
-
- All Implemented Interfaces:
Serializable
,Cloneable
,Iterable<Object>
,Collection<Object>
,List<Object>
,RandomAccess
,Jsonable
public class JsonArray extends ArrayList<Object> implements Jsonable
JsonArray is a common non-thread safe data format for a collection of data. The contents of a JsonArray are only validated as JSON values on serialization. Meaning all values added to a JsonArray must be recognized by the Jsoner for it to be a true 'JsonArray', so it is really a JsonableArrayList that will serialize to a JsonArray if all of its contents are valid JSON.- Since:
- 2.0.0
- See Also:
Jsoner
, Serialized Form
-
-
Field Summary
-
Fields inherited from class java.util.AbstractList
modCount
-
-
Constructor Summary
Constructors Constructor Description JsonArray()
Instantiates an empty JsonArray.JsonArray(Collection<?> collection)
Instantiate a new JsonArray using ArrayList's constructor of the same type.
-
Method Summary
All Methods Instance Methods Concrete Methods Deprecated Methods Modifier and Type Method Description <T> void
asCollection(Collection<T> destination)
A convenience method that assumes every element of the JsonArray is castable to T before adding it to a collection of Ts.BigDecimal
getBigDecimal(int index)
A convenience method that assumes there is a BigDecimal, Number, or String at the given index.Boolean
getBoolean(int index)
A convenience method that assumes there is a Boolean or String value at the given index.Byte
getByte(int index)
A convenience method that assumes there is a Number or String value at the given index.<T extends Collection<?>>
TgetCollection(int index)
A convenience method that assumes there is a Collection value at the given index.Double
getDouble(int index)
A convenience method that assumes there is a Number or String value at the given index.<T extends Enum<T>>
TgetEnum(int index)
Deprecated.2.3.0 Jsoner deprecated automatically serializing enums as Strings.Float
getFloat(int index)
A convenience method that assumes there is a Number or String value at the given index.Integer
getInteger(int index)
A convenience method that assumes there is a Number or String value at the given index.Long
getLong(int index)
A convenience method that assumes there is a Number or String value at the given index.<T extends Map<?,?>>
TgetMap(int index)
A convenience method that assumes there is a Map value at the given index.Short
getShort(int index)
A convenience method that assumes there is a Number or String value at the given index.String
getString(int index)
A convenience method that assumes there is a Boolean, Number, or String value at the given index.String
toJson()
Serialize to a JSON formatted string.void
toJson(Writer writable)
Serialize to a JSON formatted stream.-
Methods inherited from class java.util.ArrayList
add, add, addAll, addAll, clear, clone, contains, ensureCapacity, equals, forEach, get, hashCode, indexOf, isEmpty, iterator, lastIndexOf, listIterator, listIterator, remove, remove, removeAll, removeIf, removeRange, replaceAll, retainAll, set, size, sort, spliterator, subList, toArray, toArray, trimToSize
-
Methods inherited from class java.util.AbstractCollection
containsAll, toString
-
Methods inherited from class java.lang.Object
finalize, getClass, notify, notifyAll, wait, wait, wait
-
Methods inherited from interface java.util.Collection
parallelStream, stream, toArray
-
Methods inherited from interface java.util.List
containsAll
-
-
-
-
Constructor Detail
-
JsonArray
public JsonArray()
Instantiates an empty JsonArray.
-
JsonArray
public JsonArray(Collection<?> collection)
Instantiate a new JsonArray using ArrayList's constructor of the same type.- Parameters:
collection
- represents the elements to produce the JsonArray with.
-
-
Method Detail
-
asCollection
public <T> void asCollection(Collection<T> destination)
A convenience method that assumes every element of the JsonArray is castable to T before adding it to a collection of Ts.- Type Parameters:
T
- represents the type that all of the elements of the JsonArray should be cast to and the type the collection will contain.- Parameters:
destination
- represents where all of the elements of the JsonArray are added to after being cast to the generic type provided.- Throws:
ClassCastException
- if the unchecked cast of an element to T fails.
-
getBigDecimal
public BigDecimal getBigDecimal(int index)
A convenience method that assumes there is a BigDecimal, Number, or String at the given index. If a Number or String is there it is used to construct a new BigDecimal.- Parameters:
index
- representing where the value is expected to be at.- Returns:
- the value stored at the key or the default provided if the key doesn't exist.
- Throws:
ClassCastException
- if there was a value but didn't match the assumed return types.IndexOutOfBoundsException
- if the index is outside of the range of element indexes in the JsonArray.NumberFormatException
- if a String isn't a valid representation of a BigDecimal.- See Also:
BigDecimal
,Number.doubleValue()
-
getBoolean
public Boolean getBoolean(int index)
A convenience method that assumes there is a Boolean or String value at the given index.- Parameters:
index
- represents where the value is expected to be at.- Returns:
- the value at the index provided cast to a boolean.
- Throws:
ClassCastException
- if there was a value but didn't match the assumed return type.IndexOutOfBoundsException
- if the index is outside of the range of element indexes in the JsonArray.
-
getByte
public Byte getByte(int index)
A convenience method that assumes there is a Number or String value at the given index.- Parameters:
index
- represents where the value is expected to be at.- Returns:
- the value at the index provided cast to a byte.
- Throws:
ClassCastException
- if there was a value but didn't match the assumed return type.NumberFormatException
- if a String isn't a valid representation of a BigDecimal or if the Number represents the double or float Infinity or NaN.IndexOutOfBoundsException
- if the index is outside of the range of element indexes in the JsonArray.- See Also:
Number
-
getCollection
public <T extends Collection<?>> T getCollection(int index)
A convenience method that assumes there is a Collection value at the given index.- Type Parameters:
T
- the kind of collection to expect at the index. Note unless manually added, collection values will be a JsonArray.- Parameters:
index
- represents where the value is expected to be at.- Returns:
- the value at the index provided cast to a Collection.
- Throws:
ClassCastException
- if there was a value but didn't match the assumed return type.IndexOutOfBoundsException
- if the index is outside of the range of element indexes in the JsonArray.- See Also:
Collection
-
getDouble
public Double getDouble(int index)
A convenience method that assumes there is a Number or String value at the given index.- Parameters:
index
- represents where the value is expected to be at.- Returns:
- the value at the index provided cast to a double.
- Throws:
ClassCastException
- if there was a value but didn't match the assumed return type.NumberFormatException
- if a String isn't a valid representation of a BigDecimal or if the Number represents the double or float Infinity or NaN.IndexOutOfBoundsException
- if the index is outside of the range of element indexes in the JsonArray.- See Also:
Number
-
getEnum
@Deprecated public <T extends Enum<T>> T getEnum(int index) throws ClassNotFoundException
Deprecated.2.3.0 Jsoner deprecated automatically serializing enums as Strings.A convenience method that assumes there is a String value at the given index representing a fully qualified name in dot notation of an enum.- Type Parameters:
T
- the Enum type the value at the index is expected to belong to.- Parameters:
index
- representing where the value is expected to be at.- Returns:
- the enum based on the string found at the index, or null if the value at the index was null.
- Throws:
ClassNotFoundException
- if the element was a String but the declaring enum type couldn't be determined with it.ClassCastException
- if the element at the index was not a String or if the fully qualified enum name is of the wrong type.IllegalArgumentException
- if an enum type was dynamically determined but it doesn't define an enum with the dynamically determined name.IndexOutOfBoundsException
- if the index is outside of the range of element indexes in the JsonArray.- See Also:
Enum.valueOf(Class, String)
-
getFloat
public Float getFloat(int index)
A convenience method that assumes there is a Number or String value at the given index.- Parameters:
index
- represents where the value is expected to be at.- Returns:
- the value at the index provided cast to a float.
- Throws:
ClassCastException
- if there was a value but didn't match the assumed return type.NumberFormatException
- if a String isn't a valid representation of a BigDecimal or if the Number represents the double or float Infinity or NaN.IndexOutOfBoundsException
- if the index is outside of the range of element indexes in the JsonArray.- See Also:
Number
-
getInteger
public Integer getInteger(int index)
A convenience method that assumes there is a Number or String value at the given index.- Parameters:
index
- represents where the value is expected to be at.- Returns:
- the value at the index provided cast to a int.
- Throws:
ClassCastException
- if there was a value but didn't match the assumed return type.NumberFormatException
- if a String isn't a valid representation of a BigDecimal or if the Number represents the double or float Infinity or NaN.IndexOutOfBoundsException
- if the index is outside of the range of element indexes in the JsonArray.- See Also:
Number
-
getLong
public Long getLong(int index)
A convenience method that assumes there is a Number or String value at the given index.- Parameters:
index
- represents where the value is expected to be at.- Returns:
- the value at the index provided cast to a long.
- Throws:
ClassCastException
- if there was a value but didn't match the assumed return type.NumberFormatException
- if a String isn't a valid representation of a BigDecimal or if the Number represents the double or float Infinity or NaN.IndexOutOfBoundsException
- if the index is outside of the range of element indexes in the JsonArray.- See Also:
Number
-
getMap
public <T extends Map<?,?>> T getMap(int index)
A convenience method that assumes there is a Map value at the given index.- Type Parameters:
T
- the kind of map to expect at the index. Note unless manually added, Map values will be a JsonObject.- Parameters:
index
- represents where the value is expected to be at.- Returns:
- the value at the index provided cast to a Map.
- Throws:
ClassCastException
- if there was a value but didn't match the assumed return type.IndexOutOfBoundsException
- if the index is outside of the range of element indexes in the JsonArray.- See Also:
Map
-
getShort
public Short getShort(int index)
A convenience method that assumes there is a Number or String value at the given index.- Parameters:
index
- represents where the value is expected to be at.- Returns:
- the value at the index provided cast to a short.
- Throws:
ClassCastException
- if there was a value but didn't match the assumed return type.NumberFormatException
- if a String isn't a valid representation of a BigDecimal or if the Number represents the double or float Infinity or NaN.IndexOutOfBoundsException
- if the index is outside of the range of element indexes in the JsonArray.- See Also:
Number
-
getString
public String getString(int index)
A convenience method that assumes there is a Boolean, Number, or String value at the given index.- Parameters:
index
- represents where the value is expected to be at.- Returns:
- the value at the index provided cast to a String.
- Throws:
ClassCastException
- if there was a value but didn't match the assumed return type.IndexOutOfBoundsException
- if the index is outside of the range of element indexes in the JsonArray.
-
toJson
public String toJson()
Description copied from interface:Jsonable
Serialize to a JSON formatted string.
-
toJson
public void toJson(Writer writable) throws IOException
Description copied from interface:Jsonable
Serialize to a JSON formatted stream.- Specified by:
toJson
in interfaceJsonable
- Parameters:
writable
- where the resulting JSON text should be sent.- Throws:
IOException
- when the writable encounters an I/O error.
-
-