Package org.json.simple
Class 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
-
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
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
-
Constructor Details
-
Method Details
-
asCollection
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
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
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
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
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
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.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
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
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
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
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
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
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
Description copied from interface:Jsonable
Serialize to a JSON formatted string. -
toJson
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.
-