@Override public final Shape read(Reader reader) throws IOException, ParseException { return readShape(new JSONParser(reader)); }
protected void readCoordListXYZ(JSONParser parser, ShapeFactory.PointsBuilder pointsBuilder) throws IOException, ParseException { assert (parser.lastEvent() == JSONParser.ARRAY_START); int evt = parser.nextEvent(); while (evt != JSONParser.EOF) { switch (evt) { case JSONParser.ARRAY_START: readCoordXYZ(parser, pointsBuilder); // reads until ARRAY_END break; case JSONParser.ARRAY_END: return; default: throw new ParseException("Unexpected " + JSONParser.getEventString(evt), (int) parser.getPosition()); } evt = parser.nextEvent(); } }
int evt = parser.nextEvent(); while (evt != JSONParser.EOF) { switch (evt) { case JSONParser.STRING: if (parser.wasKey()) { key = parser.getString(); } else { if ("type".equals(key)) { type = parser.getString(); } else { throw new ParseException("Unexpected String Value for key: " + key, (int) parser.getPosition()); } else if ("geometries".equals(key)) { List<Shape> shapes = new ArrayList<Shape>(); int sub = parser.nextEvent(); while (sub != JSONParser.EOF) { if (sub == JSONParser.OBJECT_START) { sub = parser.nextEvent(); (int) parser.getPosition()); (int) parser.getPosition()); throw new ParseException("Unexpected " + JSONParser.getEventString(evt), (int) parser.getPosition()); evt = parser.nextEvent();
public static Object parseSingleFieldValue(int ev, JSONParser parser, MethodFrameWrapper runnable) throws IOException { switch (ev) { case STRING: return parser.getString(); case LONG: return parser.getLong(); case NUMBER: return parser.getDouble(); case BIGNUMBER: return parser.getNumberChars().toString(); case BOOLEAN: return parser.getBoolean(); case NULL: parser.getNull(); return null; case ARRAY_START: return parseArrayFieldValue(ev, parser, runnable); case OBJECT_START: if (runnable != null) { runnable.walk(OBJECT_START); return null; } consumeTillMatchingEnd(parser, 1, 0); return null; default: throw new RuntimeException("Error parsing JSON field value. Unexpected " + JSONParser.getEventString(ev)); } }
JSONParser parser = new JSONParser(rdr); parser.setFlags(parser.getFlags() | JSONParser.ALLOW_MISSING_COLON_COMMA_BEFORE_OBJECT | JSONParser.OPTIONAL_OUTER_BRACES if (parser.lastEvent() != JSONParser.OBJECT_START) { throw new RuntimeException("The JSON must be an Object of the form {\"command\": {...},..."); int ev = parser.nextEvent(); if (ev == JSONParser.OBJECT_END) return operations; Object key = ob.getKey(); ev = parser.nextEvent(); Object val = ob.getVal(); if (val instanceof List && !singletonCommands.contains(key)) {
int event = parser.nextEvent(); if (event == OBJECT_END) { if (isRecord()) { assert parser.wasKey(); String name = parser.getString(); event = parser.nextEvent(); String nameInRecord = node.fieldName == null ? getNameInRecord(name, frameWrapper, node) : node.fieldName; MethodFrameWrapper runnable = null; event = parser.nextEvent(); new Wrapper(node, frameWrapper, name).walk(event); event = parser.nextEvent(); if (event == STRING || event == LONG ||
public static void consumeTillMatchingEnd(JSONParser parser, int obj, int arr) throws IOException { for (; ; ) { int event = parser.nextEvent(); if (event == OBJECT_START) obj++; if (event == OBJECT_END) obj--; assert obj >= 0; if (event == ARRAY_START) arr++; if (event == ARRAY_END) arr--; assert arr >= 0; if (obj == 0 && arr == 0) break; } }
private void handleError() throws IOException { for (;;) { int event = parser.nextEvent(); if(event == JSONParser.STRING) { String val = parser.getString(); if("msg".equals(val)) { event = parser.nextEvent(); if(event == JSONParser.STRING) { String msg = parser.getString(); if(msg != null) { throw new SolrStream.HandledException(msg); } } } } else if (event == JSONParser.OBJECT_END) { throw new IOException(""); } } }
protected Shape readMultiPoint(JSONParser parser) throws IOException, ParseException { assert (parser.lastEvent() == JSONParser.ARRAY_START); ShapeFactory.MultiPointBuilder builder = shapeFactory.multiPoint(); readCoordListXYZ(parser, builder); return builder.build(); }
private void expect(int parserEventType) throws IOException { int event = parser.nextEvent(); if (event != parserEventType) { throw new IOException("JSONTupleStream: expected " + JSONParser.getEventString(parserEventType) + " but got " + JSONParser.getEventString(event) ); } }
public static JSONParser getJSONParser(Reader reader){ JSONParser parser = new JSONParser(reader); parser.setFlags(parser.getFlags() | JSONParser.ALLOW_MISSING_COLON_COMMA_BEFORE_OBJECT | JSONParser.OPTIONAL_OUTER_BRACES); return parser; }
/** Reads a JSON numeric value into the output. */ public void getNumberChars(CharArr output) throws IOException { int ev=0; if (valstate==0) ev=nextEvent(); if (valstate == LONG || valstate == NUMBER) output.write(this.out); else if (valstate==BIGNUMBER) { continueNumber(output); } else { throw err("Unexpected " + ev); } valstate=0; }
public Object getString() throws IOException { return parser.getString(); }
public Object getBoolean() throws IOException { return parser.getBoolean(); }
public Object getNull() throws IOException { parser.getNull(); return null; }
public Object getLong() throws IOException { return Long.valueOf(parser.getLong()); }