Class JsonArray

All Implemented Interfaces:
Serializable, Cloneable, Iterable<Object>, Collection<Object>, List<Object>, RandomAccess, SequencedCollection<Object>, 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:
  • Field Details

    • serialVersionUID

      private static final long serialVersionUID
      The serialization version this class is compatible with. This value doesn't need to be incremented if and only if the only changes to occur were updating comments, updating javadocs, adding new fields to the class, changing the fields from static to non-static, or changing the fields from transient to non transient. All other changes require this number be incremented.
      See Also:
  • Constructor Details

    • 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 Details

    • 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:
    • 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:
    • 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:
    • 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:
    • 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:
    • 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:
    • 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:
    • 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:
    • 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:
    • 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:
    • 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.
      Specified by:
      toJson in interface Jsonable
      Returns:
      a string, formatted in JSON, that represents the Jsonable.
    • toJson

      public void toJson(Writer writable) throws IOException
      Description copied from interface: Jsonable
      Serialize to a JSON formatted stream.
      Specified by:
      toJson in interface Jsonable
      Parameters:
      writable - where the resulting JSON text should be sent.
      Throws:
      IOException - when the writable encounters an I/O error.