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 {@code}get{/code} and {@code}opt{/code} methods for accessing the values by index, and {@code}put{/code} methods for adding or replacing values. The values can be any of these types: {@code}Boolean{/code}, {@code}JSONArray{/code}, {@code}JSONObject{/code}, {@code}Number{/code}, {@code}String{/code}, or the {@code}JSONObject.NULL object{/code}.
The constructor can convert a JSON text into a Java object. The {@code}toString{/code} method converts to JSON text.
A {@code}get{/code} method returns a value if one can be found, and throws an exception if one cannot be found. An {@code}opt{/code} method returns a default value instead of throwing an exception, and so is useful for obtaining optional values.
The generic {@code}get(){/code} and {@code}opt(){/code} methods return an object which you can cast or query for type. There are also typed {@code}get{/code} and {@code}opt{/code} methods that do type checking and type coercion for you.
The texts produced by the {@code}toString{/code} methods strictly conform to JSON syntax rules. The constructors are more forgiving in the texts they will accept:
- An extra {@code},{/code} (comma) may appear just before the closing bracket.
- The {@code}null{/code} value will be inserted when there is {@code},{/code} (comma) elision.
- Strings may be quoted with {@code}'{/code} (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: {@code}{ } [ ] / \ : , = ; #{/code} and if they do not look like numbers and if they are not the reserved words {@code}true{/code}, {@code}false{/code}, or {@code}null{/code}.
- Values can be separated by {@code};{/code} (semicolon) as well as by {@code},{/code} (comma).
- Numbers may have the {@code}0x-{/code} (hex) prefix.
@author JSON.org
@version 2010-12-28