com.hazelcast.com.eclipsesource.json

## Class JsonArray

- java.lang.Object
- - com.hazelcast.com.eclipsesource.json.JsonValue
  - - com.hazelcast.com.eclipsesource.json.JsonArray

- All Implemented Interfaces:
    Serializable, Iterable<JsonValue>

      public class JsonArray
      extends JsonValue
      implements Iterable<JsonValue>

  Represents a JSON array, an ordered collection of JSON values.

  Elements can be added using the `add(...)` methods which accept instances of `JsonValue`, strings, primitive numbers, and boolean values. To replace an element of an array, use the `set(int, ...)` methods.

  Elements can be accessed by their index using `get(int)`. This class also supports iterating over the elements in document order using an `iterator()` or an enhanced for loop:

       for (JsonValue value : jsonArray) {
         ...
       }

  An equivalent `List` can be obtained from the method `values()`.

  Note that this class is not thread-safe. If multiple threads access a `JsonArray` instance concurrently, while at least one of these threads modifies the contents of this array, access to the instance must be synchronized externally. Failure to do so may lead to an inconsistent state.

  This class is not supposed to be extended by clients.

  See Also:
    Serialized Form

- - ### Field Summary

    - ### Fields inherited from class com.hazelcast.com.eclipsesource.json.JsonValue

      `FALSE, NULL, TRUE`

  - ### Constructor Summary

    Constructors
    Constructor and Description
    `JsonArray()` Creates a new empty JsonArray.
    `JsonArray(JsonArray array)` Creates a new JsonArray with the contents of the specified JSON array.

  - ### Method Summary

    All Methods Static Methods Instance Methods Concrete Methods Deprecated Methods
    Modifier and Type | Method and Description
    --- | ---
    `JsonArray` | `add(boolean value)` Appends the JSON representation of the specified `boolean` value to the end of this array.
    `JsonArray` | `add(double value)` Appends the JSON representation of the specified `double` value to the end of this array.
    `JsonArray` | `add(float value)` Appends the JSON representation of the specified `float` value to the end of this array.
    `JsonArray` | `add(int value)` Appends the JSON representation of the specified `int` value to the end of this array.
    `JsonArray` | `add(JsonValue value)` Appends the specified JSON value to the end of this array.
    `JsonArray` | `add(long value)` Appends the JSON representation of the specified `long` value to the end of this array.
    `JsonArray` | `add(String value)` Appends the JSON representation of the specified string to the end of this array.
    `JsonArray` | `asArray()` Returns this JSON value as `JsonArray`, assuming that this value represents a JSON array.
    `boolean` | `equals(Object object)` Indicates whether some other object is "equal to" this one according to the contract specified in `Object.equals(Object)`.
    `JsonValue` | `get(int index)` Returns the value of the element at the specified position in this array.
    `int` | `hashCode()`
    `boolean` | `isArray()` Detects whether this value represents a JSON array.
    `boolean` | `isEmpty()` Returns `true` if this array contains no elements.
    `Iterator<JsonValue>` | `iterator()` Returns an iterator over the values of this array in document order.
    `static JsonArray` | `readFrom(Reader reader)` Deprecated. Use `Json.parse(Reader)``.asArray()` instead
    `static JsonArray` | `readFrom(String string)` Deprecated. Use `Json.parse(String)``.asArray()` instead
    `JsonArray` | `remove(int index)` Removes the element at the specified index from this array.
    `JsonArray` | `set(int index, boolean value)` Replaces the element at the specified position in this array with the JSON representation of the specified `boolean` value.
    `JsonArray` | `set(int index, double value)` Replaces the element at the specified position in this array with the JSON representation of the specified `double` value.
    `JsonArray` | `set(int index, float value)` Replaces the element at the specified position in this array with the JSON representation of the specified `float` value.
    `JsonArray` | `set(int index, int value)` Replaces the element at the specified position in this array with the JSON representation of the specified `int` value.
    `JsonArray` | `set(int index, JsonValue value)` Replaces the element at the specified position in this array with the specified JSON value.
    `JsonArray` | `set(int index, long value)` Replaces the element at the specified position in this array with the JSON representation of the specified `long` value.
    `JsonArray` | `set(int index, String value)` Replaces the element at the specified position in this array with the JSON representation of the specified string.
    `int` | `size()` Returns the number of elements in this array.
    `static JsonArray` | `unmodifiableArray(JsonArray array)` Returns an unmodifiable wrapper for the specified JsonArray.
    `List<JsonValue>` | `values()` Returns a list of the values in this array in document order.

    - ### Methods inherited from class com.hazelcast.com.eclipsesource.json.JsonValue

      `asBoolean, asDouble, asFloat, asInt, asLong, asObject, asString, isBoolean, isFalse, isNull, isNumber, isObject, isString, isTrue, toString, toString, valueOf, valueOf, valueOf, valueOf, valueOf, valueOf, writeTo, writeTo`

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

      `clone, finalize, getClass, notify, notifyAll, wait, wait, wait`

    - ### Methods inherited from interface java.lang.Iterable

      `forEach, spliterator`

- - ### Constructor Detail

    - #### JsonArray

          public JsonArray()

      Creates a new empty JsonArray.

    - #### JsonArray

          public JsonArray(JsonArray array)

      Creates a new JsonArray with the contents of the specified JSON array.
      Parameters:
        `array` - the JsonArray to get the initial contents from, must not be `null`

  - ### Method Detail

    - #### readFrom

          @Deprecated
          public static JsonArray readFrom(Reader reader)
                                                throws IOException

      Deprecated. Use `Json.parse(Reader)``.asArray()` instead
      Reads a JSON array from the given reader.

      Characters are read in chunks and buffered internally, therefore wrapping an existing reader in an additional `BufferedReader` does not improve reading performance.

      Parameters:
        `reader` - the reader to read the JSON array from
      Returns:
        the JSON array that has been read
      Throws:
        `IOException` - if an I/O error occurs in the reader
        `ParseException` - if the input is not valid JSON
        `UnsupportedOperationException` - if the input does not contain a JSON array

    - #### readFrom

          @Deprecated
          public static JsonArray readFrom(String string)

      Deprecated. Use `Json.parse(String)``.asArray()` instead
      Reads a JSON array from the given string.
      Parameters:
        `string` - the string that contains the JSON array
      Returns:
        the JSON array that has been read
      Throws:
        `ParseException` - if the input is not valid JSON
        `UnsupportedOperationException` - if the input does not contain a JSON array

    - #### unmodifiableArray

          public static JsonArray unmodifiableArray(JsonArray array)

      Returns an unmodifiable wrapper for the specified JsonArray. This method allows to provide read-only access to a JsonArray.

      The returned JsonArray is backed by the given array and reflects subsequent changes. Attempts to modify the returned JsonArray result in an `UnsupportedOperationException`.

      Parameters:
        `array` - the JsonArray for which an unmodifiable JsonArray is to be returned
      Returns:
        an unmodifiable view of the specified JsonArray

    - #### add

          public JsonArray add(int value)

      Appends the JSON representation of the specified `int` value to the end of this array.
      Parameters:
        `value` - the value to add to the array
      Returns:
        the array itself, to enable method chaining

    - #### add

          public JsonArray add(long value)

      Appends the JSON representation of the specified `long` value to the end of this array.
      Parameters:
        `value` - the value to add to the array
      Returns:
        the array itself, to enable method chaining

    - #### add

          public JsonArray add(float value)

      Appends the JSON representation of the specified `float` value to the end of this array.
      Parameters:
        `value` - the value to add to the array
      Returns:
        the array itself, to enable method chaining

    - #### add

          public JsonArray add(double value)

      Appends the JSON representation of the specified `double` value to the end of this array.
      Parameters:
        `value` - the value to add to the array
      Returns:
        the array itself, to enable method chaining

    - #### add

          public JsonArray add(boolean value)

      Appends the JSON representation of the specified `boolean` value to the end of this array.
      Parameters:
        `value` - the value to add to the array
      Returns:
        the array itself, to enable method chaining

    - #### add

          public JsonArray add(String value)

      Appends the JSON representation of the specified string to the end of this array.
      Parameters:
        `value` - the string to add to the array
      Returns:
        the array itself, to enable method chaining

    - #### add

          public JsonArray add(JsonValue value)

      Appends the specified JSON value to the end of this array.
      Parameters:
        `value` - the JsonValue to add to the array, must not be `null`
      Returns:
        the array itself, to enable method chaining

    - #### set

          public JsonArray set(int index,
                               int value)

      Replaces the element at the specified position in this array with the JSON representation of the specified `int` value.
      Parameters:
        `index` - the index of the array element to replace
        `value` - the value to be stored at the specified array position
      Returns:
        the array itself, to enable method chaining
      Throws:
        `IndexOutOfBoundsException` - if the index is out of range, i.e. `index < 0` or `index >= size`

    - #### set

          public JsonArray set(int index,
                               long value)

      Replaces the element at the specified position in this array with the JSON representation of the specified `long` value.
      Parameters:
        `index` - the index of the array element to replace
        `value` - the value to be stored at the specified array position
      Returns:
        the array itself, to enable method chaining
      Throws:
        `IndexOutOfBoundsException` - if the index is out of range, i.e. `index < 0` or `index >= size`

    - #### set

          public JsonArray set(int index,
                               float value)

      Replaces the element at the specified position in this array with the JSON representation of the specified `float` value.
      Parameters:
        `index` - the index of the array element to replace
        `value` - the value to be stored at the specified array position
      Returns:
        the array itself, to enable method chaining
      Throws:
        `IndexOutOfBoundsException` - if the index is out of range, i.e. `index < 0` or `index >= size`

    - #### set

          public JsonArray set(int index,
                               double value)

      Replaces the element at the specified position in this array with the JSON representation of the specified `double` value.
      Parameters:
        `index` - the index of the array element to replace
        `value` - the value to be stored at the specified array position
      Returns:
        the array itself, to enable method chaining
      Throws:
        `IndexOutOfBoundsException` - if the index is out of range, i.e. `index < 0` or `index >= size`

    - #### set

          public JsonArray set(int index,
                               boolean value)

      Replaces the element at the specified position in this array with the JSON representation of the specified `boolean` value.
      Parameters:
        `index` - the index of the array element to replace
        `value` - the value to be stored at the specified array position
      Returns:
        the array itself, to enable method chaining
      Throws:
        `IndexOutOfBoundsException` - if the index is out of range, i.e. `index < 0` or `index >= size`

    - #### set

          public JsonArray set(int index,
                               String value)

      Replaces the element at the specified position in this array with the JSON representation of the specified string.
      Parameters:
        `index` - the index of the array element to replace
        `value` - the string to be stored at the specified array position
      Returns:
        the array itself, to enable method chaining
      Throws:
        `IndexOutOfBoundsException` - if the index is out of range, i.e. `index < 0` or `index >= size`

    - #### set

          public JsonArray set(int index,
                               JsonValue value)

      Replaces the element at the specified position in this array with the specified JSON value.
      Parameters:
        `index` - the index of the array element to replace
        `value` - the value to be stored at the specified array position, must not be `null`
      Returns:
        the array itself, to enable method chaining
      Throws:
        `IndexOutOfBoundsException` - if the index is out of range, i.e. `index < 0` or `index >= size`

    - #### remove

          public JsonArray remove(int index)

      Removes the element at the specified index from this array.
      Parameters:
        `index` - the index of the element to remove
      Returns:
        the array itself, to enable method chaining
      Throws:
        `IndexOutOfBoundsException` - if the index is out of range, i.e. `index < 0` or `index >= size`

    - #### size

          public int size()

      Returns the number of elements in this array.
      Returns:
        the number of elements in this array

    - #### isEmpty

          public boolean isEmpty()

      Returns `true` if this array contains no elements.
      Returns:
        `true` if this array contains no elements

    - #### get

          public JsonValue get(int index)

      Returns the value of the element at the specified position in this array.
      Parameters:
        `index` - the index of the array element to return
      Returns:
        the value of the element at the specified position
      Throws:
        `IndexOutOfBoundsException` - if the index is out of range, i.e. `index < 0` or `index >= size`

    - #### values

          public List<JsonValue> values()

      Returns a list of the values in this array in document order. The returned list is backed by this array and will reflect subsequent changes. It cannot be used to modify this array. Attempts to modify the returned list will result in an exception.
      Returns:
        a list of the values in this array

    - #### iterator

          public Iterator<JsonValue> iterator()

      Returns an iterator over the values of this array in document order. The returned iterator cannot be used to modify this array.
      Specified by:
        `iterator` in interface `Iterable<JsonValue>`
      Returns:
        an iterator over the values of this array

    - #### isArray

          public boolean isArray()

      Description copied from class: `JsonValue`
      Detects whether this value represents a JSON array. If this is the case, this value is an instance of `JsonArray`.
      Overrides:
        `isArray` in class `JsonValue`
      Returns:
        `true` if this value is an instance of JsonArray

    - #### asArray

          public JsonArray asArray()

      Description copied from class: `JsonValue`
      Returns this JSON value as `JsonArray`, assuming that this value represents a JSON array. If this is not the case, an exception is thrown.
      Overrides:
        `asArray` in class `JsonValue`
      Returns:
        a JSONArray for this value

    - #### hashCode

          public int hashCode()

      Overrides:
        `hashCode` in class `JsonValue`

    - #### equals

          public boolean equals(Object object)

      Description copied from class: `JsonValue`
      Indicates whether some other object is "equal to" this one according to the contract specified in `Object.equals(Object)`.

      Two JsonValues are considered equal if and only if they represent the same JSON text. As a consequence, two given JsonObjects may be different even though they contain the same set of names with the same values, but in a different order.

      Overrides:
        `equals` in class `JsonValue`
      Parameters:
        `object` - the reference object with which to compare
      Returns:
        true if this object is the same as the object argument; false otherwise

Copyright © 2018. All rights reserved.