Class JSONArray


  • public class JSONArray
    extends java.lang.Object
    A JSONArray is an ordered sequence of values. Its external text form is a string wrapped in square brackets with commas separating the values. The internal form is an object having 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 coersion 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:

    • An extra , (comma) may appear just before the closing bracket.
    • The null value will be inserted when there is , (comma) elision.
    • Strings may be quoted with ' (single quote).
    • Strings do not need to be quoted at all if they do not begin with a quote or single quote, and if they do not contain leading or trailing spaces, and if they do not contain any of these characters: { } [ ] / \ : , = ; # and if they do not look like numbers and if they are not the reserved words true, false, or null.
    • Values can be separated by ; (semicolon) as well as by , (comma).
    • Numbers may have the 0- (octal) or 0x- (hex) prefix.
    • Comments written in the slashshlash, slashstar, and hash conventions will be ignored.
    • Constructor Summary

      Constructors 
      Constructor Description
      JSONArray()
      Construct an empty JSONArray.
      JSONArray​(java.lang.Object array)
      Construct a JSONArray from an array.
      JSONArray​(java.lang.Object array, boolean includeSuperClass)
      Construct a JSONArray from an array with a bean.
      JSONArray​(java.lang.String source)
      Construct a JSONArray from a source JSON text.
      JSONArray​(java.util.Collection<?> collection)
      Construct a JSONArray from a Collection.
      JSONArray​(java.util.Collection<java.lang.Object> collection, boolean includeSuperClass)
      Construct a JSONArray from a collection of beans.
      JSONArray​(JSONTokener x)
      Construct a JSONArray from a JSONTokener.
    • Method Summary

      All Methods Instance Methods Concrete Methods 
      Modifier and Type Method Description
      void append​(JSONArray array)
      Appends values from another JSON array.
      boolean containsString​(java.lang.String value)
      Check if this array contains the given string value.
      java.lang.Object get​(int index)
      Get the object 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.
      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.
      java.lang.String getString​(int index)
      Get the string associated with an index.
      boolean isNull​(int index)
      Determine if the value is null.
      java.lang.String join​(java.lang.String separator)
      Make a string from the contents of this JSONArray.
      int length()
      Get the number of elements in the JSONArray, included nulls.
      java.lang.Object opt​(int index)
      Get the optional object 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.
      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.
      java.lang.String optString​(int index)
      Get the optional string value associated with an index.
      java.lang.String optString​(int index, java.lang.String defaultValue)
      Get the optional string associated with an index.
      JSONArray put​(boolean value)
      Append a boolean value.
      JSONArray put​(double value)
      Append a double 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, double value)
      Put or replace a double 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, java.lang.Object value)
      Put or replace an object value in the JSONArray.
      JSONArray put​(int index, java.util.Collection<java.lang.Object> value)
      Put a value in the JSONArray, where the value will be a JSONArray which is produced from a Collection.
      JSONArray put​(int index, java.util.Map<?,​?> value)
      Put a value in the JSONArray, where the value will be a JSONObject which is produced from a Map.
      JSONArray put​(long value)
      Append an long value.
      JSONArray put​(java.lang.Object value)
      Append an object value.
      JSONArray put​(java.util.Collection<java.lang.Object> value)
      Put a value in the JSONArray, where the value will be a JSONArray which is produced from a Collection.
      JSONArray put​(java.util.Map<?,​?> value)
      Put a value in the JSONArray, where the value will be a JSONObject which is produced from a Map.
      JSONObject toJSONObject​(JSONArray names)
      Produce a JSONObject by combining a JSONArray of names with the values of this JSONArray.
      java.lang.String toString()
      Make a JSON text of this JSONArray.
      java.lang.String toString​(int indentFactor)
      Make a pretty printed JSON text of this JSONArray.
      java.io.Writer write​(java.io.Writer writer)
      Write the contents of the JSONArray as JSON text to a writer.
      • Methods inherited from class java.lang.Object

        clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
    • Constructor Detail

      • JSONArray

        public JSONArray()
        Construct an empty JSONArray.

      • JSONArray

        public JSONArray​(java.util.Collection<?> collection)
        Construct a JSONArray from a Collection.

        Parameters:
        collection - a Collection.
      • JSONArray

        public JSONArray​(java.util.Collection<java.lang.Object> collection,
                         boolean includeSuperClass)
        Construct a JSONArray from a collection of beans.

        The collection should have Java Beans.

        Parameters:
        collection - a collection
        includeSuperClass - tell whether to include the super class properties
      • JSONArray

        public JSONArray​(java.lang.Object array)
                  throws JSONException
        Construct a JSONArray from an array.

        Parameters:
        array - an array
        Throws:
        JSONException - if not an array
      • JSONArray

        public JSONArray​(java.lang.Object array,
                         boolean includeSuperClass)
                  throws JSONException
        Construct a JSONArray from an array with a bean.

        The array should have Java Beans.

        Parameters:
        array - an array
        includeSuperClass - tell whether to include the super class properties
        Throws:
        JSONException - if not an array
      • JSONArray

        public JSONArray​(java.lang.String source)
                  throws JSONException
        Construct a JSONArray from a source JSON text.

        Parameters:
        source - a string that begins with [ (left bracket) and ends with ] (right bracket)
        Throws:
        JSONException - if there is a syntax error
    • Method Detail

      • append

        public void append​(JSONArray array)
        Appends values from another JSON array.
        Parameters:
        array - the array whose values should be appended
      • containsString

        public boolean containsString​(java.lang.String value)
        Check if this array contains the given string value.

        Parameters:
        value - the value to check
        Returns:
        true if found, false if not
      • get

        public java.lang.Object get​(int index)
                             throws JSONException
        Get the object value associated with an index.

        Parameters:
        index - the index must be between 0 and length() - 1
        Returns:
        an object value
        Throws:
        JSONException - if there is no value for the index
      • getBoolean

        public boolean getBoolean​(int index)
                           throws JSONException
        Get the boolean value associated with an index.

        The string values "true" and "false" are converted to boolean.

        Parameters:
        index - the index must be between 0 and length() - 1
        Returns:
        the truth
        Throws:
        JSONException - if there is no value for the index or if the value is not convertable to boolean
      • getDouble

        public double getDouble​(int index)
                         throws JSONException
        Get the double value associated with an index.

        Parameters:
        index - the index must be between 0 and length() - 1
        Returns:
        the value
        Throws:
        JSONException - if the key is not found or if the value cannot be converted to a number
      • getInt

        public int getInt​(int index)
                   throws JSONException
        Get the int value associated with an index.

        Parameters:
        index - the index must be between 0 and length() - 1
        Returns:
        the value
        Throws:
        JSONException - if the key is not found or if the value cannot be converted to a number
      • getJSONArray

        public JSONArray getJSONArray​(int index)
                               throws JSONException
        Get the JSONArray associated with an index.

        Parameters:
        index - the index must be between 0 and length() - 1
        Returns:
        a JSONArray value
        Throws:
        JSONException - if there is no value for the index or if the value is not a JSONArray
      • getJSONObject

        public JSONObject getJSONObject​(int index)
                                 throws JSONException
        Get the JSONObject associated with an index.

        Parameters:
        index - the index must be between 0 and length() - 1
        Returns:
        a JSONObject value
        Throws:
        JSONException - if there is no value for the index or if the value is not a JSONObject
      • getLong

        public long getLong​(int index)
                     throws JSONException
        Get the long value associated with an index.

        Parameters:
        index - the index must be between 0 and length() - 1
        Returns:
        the value
        Throws:
        JSONException - if the key is not found or if the value cannot be converted to a number
      • getString

        public java.lang.String getString​(int index)
                                   throws JSONException
        Get the string associated with an index.

        Parameters:
        index - the index must be between 0 and length() - 1
        Returns:
        a string value
        Throws:
        JSONException - if there is no value for the index
      • isNull

        public boolean isNull​(int index)
        Determine if the value is null.

        Parameters:
        index - the index must be between 0 and length() - 1
        Returns:
        true if the value at the index is null, or if there is no value
      • join

        public java.lang.String join​(java.lang.String separator)
                              throws JSONException
        Make a string from the contents of this JSONArray.

        The separator string is inserted between each element.

        Warning: This method assumes that the data structure is acyclical.

        Parameters:
        separator - a string that will be inserted between the elements
        Returns:
        a string
        Throws:
        JSONException - if the array contains an invalid number
      • length

        public int length()
        Get the number of elements in the JSONArray, included nulls.

        Returns:
        the length (or size)
      • opt

        public java.lang.Object opt​(int index)
        Get the optional object value associated with an index.

        Parameters:
        index - the index must be between 0 and length() - 1
        Returns:
        an object value, or null if there is no object at that index
      • optBoolean

        public boolean optBoolean​(int index)
        Get the optional boolean value associated with an index.

        It returns false if there is no value at that index, or if the value is not Boolean.TRUE or the String "true".

        Parameters:
        index - the index must be between 0 and length() - 1
        Returns:
        the truth
      • optBoolean

        public boolean optBoolean​(int index,
                                  boolean defaultValue)
        Get the optional boolean value associated with an index.

        It returns the defaultValue if there is no value at that index or if it is not a Boolean or the String "true" or "false" (case insensitive).

        Parameters:
        index - the index must be between 0 and length() - 1
        defaultValue - a boolean default
        Returns:
        the truth
      • optDouble

        public double optDouble​(int index)
        Get the optional double value associated with an index.

        NaN is returned if there is no value for the index, or if the value is not a number and cannot be converted to a number.

        Parameters:
        index - the index must be between 0 and length() - 1
        Returns:
        the value
      • optDouble

        public double optDouble​(int index,
                                double defaultValue)
        Get the optional double value associated with an index.

        The defaultValue is returned if there is no value for the index, or if the value is not a number and cannot be converted to a number.

        Parameters:
        index - the index must be between 0 and length() - 1
        defaultValue - the default value
        Returns:
        the value
      • optInt

        public int optInt​(int index)
        Get the optional int value associated with an index.

        Zero is returned if there is no value for the index, or if the value is not a number and cannot be converted to a number.

        Parameters:
        index - the index must be between 0 and length() - 1
        Returns:
        the value
      • optInt

        public int optInt​(int index,
                          int defaultValue)
        Get the optional int value associated with an index.

        The defaultValue is returned if there is no value for the index, or if the value is not a number and cannot be converted to a number.

        Parameters:
        index - the index must be between 0 and length() - 1
        defaultValue - the default value
        Returns:
        the value
      • optJSONArray

        public JSONArray optJSONArray​(int index)
        Get the optional JSONArray associated with an index.

        Parameters:
        index - the index must be between 0 and length() - 1
        Returns:
        aA JSONArray value, or null if the index has no value, or if the value is not a JSONArray
      • optJSONObject

        public JSONObject optJSONObject​(int index)
        Get the optional JSONObject associated with an index.

        Null is returned if the key is not found, or null if the index has no value, or if the value is not a JSONObject.

        Parameters:
        index - the index must be between 0 and length() - 1
        Returns:
        a JSONObject value
      • optLong

        public long optLong​(int index)
        Get the optional long value associated with an index.

        Zero is returned if there is no value for the index, or if the value is not a number and cannot be converted to a number.

        Parameters:
        index - the index must be between 0 and length() - 1
        Returns:
        the value
      • optLong

        public long optLong​(int index,
                            long defaultValue)
        Get the optional long value associated with an index.

        The defaultValue is returned if there is no value for the index, or if the value is not a number and cannot be converted to a number.

        Parameters:
        index - the index must be between 0 and length() - 1
        defaultValue - the default value
        Returns:
        the value
      • optString

        public java.lang.String optString​(int index)
        Get the optional string value associated with an index.

        It returns an empty string if there is no value at that index. If the value is not a string and is not null, then it is coverted to a string.

        Parameters:
        index - the index must be between 0 and length() - 1
        Returns:
        a String value
      • optString

        public java.lang.String optString​(int index,
                                          java.lang.String defaultValue)
        Get the optional string associated with an index.

        The defaultValue is returned if the key is not found.

        Parameters:
        index - tThe index must be between 0 and length() - 1
        defaultValue - the default value
        Returns:
        a String value
      • put

        public JSONArray put​(boolean value)
        Append a boolean value. This increases the array's length by one.

        Parameters:
        value - a boolean value
        Returns:
        this
      • put

        public JSONArray put​(java.util.Collection<java.lang.Object> value)
        Put a value in the JSONArray, where the value will be a JSONArray which is produced from a Collection.

        Parameters:
        value - a Collection value
        Returns:
        this
      • put

        public JSONArray put​(double value)
                      throws JSONException
        Append a double value. This increases the array's length by one.

        Parameters:
        value - a double value
        Returns:
        this
        Throws:
        JSONException - if the value is not finite
      • put

        public JSONArray put​(int value)
        Append an int value. This increases the array's length by one.

        Parameters:
        value - an int value
        Returns:
        this
      • put

        public JSONArray put​(int index,
                             boolean value)
                      throws JSONException
        Put or replace a boolean value in the JSONArray. If the index is greater than the length of the JSONArray, then null elements will be added as necessary to pad it out.

        Parameters:
        index - the index
        value - a boolean value
        Returns:
        this
        Throws:
        JSONException - if the index is negative
      • put

        public JSONArray put​(int index,
                             java.util.Collection<java.lang.Object> value)
                      throws JSONException
        Put a value in the JSONArray, where the value will be a JSONArray which is produced from a Collection.

        Parameters:
        index - the index must be between 0 and length() - 1
        value - a Collection value
        Returns:
        this
        Throws:
        JSONException - if the index is negative or if the value is not finite
      • put

        public JSONArray put​(int index,
                             double value)
                      throws JSONException
        Put or replace a double value. If the index is greater than the length of the JSONArray, then null elements will be added as necessary to pad it out.

        Parameters:
        index - the index
        value - a double value
        Returns:
        this
        Throws:
        JSONException - if the index is negative or if the value is not finite
      • put

        public JSONArray put​(int index,
                             int value)
                      throws JSONException
        Put or replace an int value. If the index is greater than the length of the JSONArray, then null elements will be added as necessary to pad it out.

        Parameters:
        index - the index
        value - an int value
        Returns:
        this
        Throws:
        JSONException - if the index is negative
      • put

        public JSONArray put​(int index,
                             long value)
                      throws JSONException
        Put or replace a long value. If the index is greater than the length of the JSONArray, then null elements will be added as necessary to pad it out.

        Parameters:
        index - the index
        value - a long value
        Returns:
        this
        Throws:
        JSONException - if the index is negative
      • put

        public JSONArray put​(int index,
                             java.util.Map<?,​?> value)
                      throws JSONException
        Put a value in the JSONArray, where the value will be a JSONObject which is produced from a Map.

        Parameters:
        index - the index must be between 0 and length() - 1
        value - the Map value
        Returns:
        this
        Throws:
        JSONException - if the index is negative or if the the value is an invalid number
      • put

        public JSONArray put​(int index,
                             java.lang.Object value)
                      throws JSONException
        Put or replace an object value in the JSONArray. If the index is greater than the length of the JSONArray, then null elements will be added as necessary to pad it out.

        Parameters:
        index - the index
        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
        Returns:
        this
        Throws:
        JSONException - if the index is negative or if the the value is an invalid number
      • put

        public JSONArray put​(long value)
        Append an long value. This increases the array's length by one.

        Parameters:
        value - a long value
        Returns:
        this
      • put

        public JSONArray put​(java.util.Map<?,​?> value)
        Put a value in the JSONArray, where the value will be a JSONObject which is produced from a Map.

        Parameters:
        value - a Map value
        Returns:
        this
      • put

        public JSONArray put​(java.lang.Object value)
        Append an object value. This increases the array's length by one.

        Parameters:
        value - an object value. The value should be a Boolean, Double, Integer, JSONArray, JSONObject, Long, or String, or the JSONObject.NULL object
        Returns:
        this
      • toJSONObject

        public JSONObject toJSONObject​(JSONArray names)
                                throws JSONException
        Produce a JSONObject by combining a JSONArray of names with the values of this JSONArray.

        Parameters:
        names - a JSONArray containing a list of key strings. These will be paired with the values
        Returns:
        a JSONObject, or null if there are no names or if this JSONArray has no values
        Throws:
        JSONException - if any of the names are null
      • toString

        public java.lang.String toString()
        Make a JSON text of this JSONArray.

        For compactness, no unnecessary whitespace is added. If it is not possible to produce a syntactically correct JSON text then null will be returned instead. This could occur if the array contains an invalid number.

        Warning: This method assumes that the data structure is acyclical.

        Overrides:
        toString in class java.lang.Object
        Returns:
        a printable, displayable, transmittable representation of the array
      • toString

        public java.lang.String toString​(int indentFactor)
                                  throws JSONException
        Make a pretty printed JSON text of this JSONArray.

        Warning: This method assumes that the data structure is acyclical.

        Parameters:
        indentFactor - the number of spaces to add to each level of indentation
        Returns:
        a printable, displayable, transmittable representation of the object, beginning with [ (left bracket) and ending with ] (right bracket)
        Throws:
        JSONException - if something goes wrong
      • write

        public java.io.Writer write​(java.io.Writer writer)
                             throws JSONException
        Write the contents of the JSONArray as JSON text to a writer.

        For compactness, no whitespace is added.

        Warning: This method assumes that the data structure is acyclical.

        Parameters:
        writer - the writer to write the contents to
        Returns:
        the writer
        Throws:
        JSONException - if something goes wrong