A JSONArray is an ordered sequence of values. Its external form is a string
wrapped in square brackets with commas between 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 external form string into an
internal form Java object. The toString() method creates an external
form string.
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 typing
checking and type coersion for you.
The texts produced by the toString() methods are very strict.
The constructors are more forgiving in the texts they will accept.
An extra comma may appear just before the closing bracket.
Strings may be quoted with single quotes.
Strings do not need to be quoted at all if they do not contain leading
or trailing spaces, and if they do not contain any of these characters:
{ } [ ] / \ : ,
Numbers may have the 0- (octal) or 0x- (hex) prefix.
Public Domain 2002 JSON.org
Ported to C# by Are Bjolseth, teleplan.no