package com.jsoniter; import java.io.IOException; class IterImplArray { public static final boolean readArray(final JsonIterator iter) throws IOException { byte c = IterImpl.nextToken(iter); switch (c) { case '[': c = IterImpl.nextToken(iter); if (c != ']') { iter.unreadByte(); return true; } return false; case ']': return false; case ',': return true; case 'n': return false; default: throw iter.reportError("readArray", "expect [ or , or n or ], but found: " + (char) c); } } public static final boolean readArrayCB(final JsonIterator iter, final JsonIterator.ReadArrayCallback callback, Object attachment) throws IOException { byte c = IterImpl.nextToken(iter); if (c == '[') { c = IterImpl.nextToken(iter); if (c != ']') { iter.unreadByte(); if (!callback.handle(iter, attachment)) { return false; } while (IterImpl.nextToken(iter) == ',') { if (!callback.handle(iter, attachment)) { return false; } } return true; } return true; } if (c == 'n') { return true; } throw iter.reportError("readArrayCB", "expect [ or n, but found: " + (char) c); } }