public static List<String> asArray(final String jsonString) {

		if (!jsonString.startsWith("[")) {
			throw new IllegalArgumentException(jsonString + " does not appear to be an array");
		}

		final List<String> elements = new ArrayList<String>();
		final StringBuilder sb = new StringBuilder();

		int depth = 0;

		for (int i = 1; i < jsonString.length() - 1; i++) {
			final char charAt = jsonString.charAt(i);

			if (openValue(charAt)) {
				depth++;
			}
			else if (closeValue(charAt)) {
				depth--;
			}

			if (depth == 0 && charAt == ',') { // end of element
				elements.add(sb.toString());
				sb.delete(0, sb.length());
			}
			else {
				sb.append(charAt);
			}
		}

		elements.add(sb.toString());

		return elements;
	}