@SuppressWarnings("deprecation") JSONParser(final String s, final BSONCallback callback) { this.s = s; _callback = (callback == null) ? new JSONCallback() : callback; }
@Override public Object objectDone() { String name = curName(); Object o = super.objectDone(); if (_lastArray) { if (!isStackEmpty()) { _put(name, o); } else { o = !org.bson.BSON.hasDecodeHooks() ? o : org.bson.BSON.applyDecodingHooks(o); setRoot(o);
private Object exceptionSwallowingStackReducingObjectDone/*CauseWeJustNeedTheStructureNotTheActualValue*/() { Object value; try { return super.objectDone(); } catch (PatternSyntaxException e) { value = EMPTY_MARKER; } if (!isStackEmpty()) { _put(curName(), value); } else { value = !BSON.hasDecodeHooks() ? value : BSON.applyDecodingHooks(value); setRoot(value); } return value; } }
@Override public Object objectDone() { String name = curName(); Object o = super.objectDone(); if (_lastArray) { if (!isStackEmpty()) { _put(name, o); } else { o = !org.bson.BSON.hasDecodeHooks() ? o : org.bson.BSON.applyDecodingHooks(o); setRoot(o);
private Object exceptionSwallowingStackReducingObjectDone/*CauseWeJustNeedTheStructureNotTheActualValue*/() { Object value; try { return super.objectDone(); } catch (PatternSyntaxException e) { value = EMPTY_MARKER; } if (!isStackEmpty()) { _put(curName(), value); } else { value = !BSON.hasDecodeHooks() ? value : BSON.applyDecodingHooks(value); setRoot(value); } return value; } }
@SuppressWarnings("deprecation") JSONParser(final String s, final BSONCallback callback) { this.s = s; _callback = (callback == null) ? new JSONCallback() : callback; }
@Converter public static BasicDBObject fromInputStreamToDBObject(InputStream is, Exchange exchange) throws Exception { BasicDBObject answer; try { byte[] input = IOConverter.toBytes(is); if (isBson(input)) { BSONCallback callback = new JSONCallback(); new BasicBSONDecoder().decode(input, callback); answer = (BasicDBObject) callback.get(); } else { answer = (BasicDBObject) JSON.parse(IOConverter.toString(input, exchange)); } } finally { // we need to make sure to close the input stream IOHelper.close(is, "InputStream", LOG); } return answer; }