code: protected static final Object parseList(Source src) throws IOException {
  		final LinkedList<Object> list = new LinkedList<Object>();
  		boolean foundEnd = false;
  		try {
  			if (src.ch == '[') {
  				src.idx++;
  			}
  			skipWhitespaces(src);
  			if (src.ch == ']') {
  				src.idx++;
  				return list;
  			}
  			char c;
  			loop: while (src.idx < src.last) {
  				list.add(parseNext(src));
  				while (true) {
  					c = src.chars[src.idx];
  					if (c == ',') {
  						src.idx++;
  						continue loop;
  					}
  					if (c == ']') {
  						foundEnd = true;
  						src.idx++;
  						break loop;
  					}
  					if (c <= 32) {
  						src.idx++;
  						continue;
  					}
  					break;
  				}
  				c = src.chars[src.idx];
  				if (c == ',') {
  					src.idx++;
  					continue;
  				}
  				if (c == ']') {
  					src.idx++;
  					foundEnd = true;
  					break;
  				}
  				throw new IOException(String.format(
  						"Expecting a ',' or a ']', " + " but got ch character of  %s " + " on array idx of %s!",
  						(int) c, list.size()));
  			}
  		} catch (IOException ioCause) {
  			throw ioCause;
  		} catch (Exception cause) {
  			throw new IOException("Issue parsing JSON array!", cause);
  		}
  		if (!foundEnd) {
  			throw new IOException("Did not find end of JSON Array!");
  		}
  		return list;
  	}
docs: --- LIST (~= JSON ARRAY) PARSER ---