private static List<Var> parseVars(JsonObject obj) { if ( !obj.get(kVars).isArray() ) throw new ResultSetException("Key 'vars' must be a JSON array"); JsonArray a = obj.get(kVars).getAsArray(); Iterator<JsonValue> iter = a.iterator(); List<Var> vars = new ArrayList<>(); for ( ; iter.hasNext() ; ) { JsonValue v = iter.next(); if ( !v.isString() ) throw new ResultSetException("Entries in vars array must be strings"); Var var = Var.alloc(v.getAsString().value()); vars.add(var); } return vars; }
private static boolean isCompactValue(JsonValue v) { if ( v.isPrimitive()) return true ; if ( v.isArray() ) { JsonArray a = v.getAsArray() ; if ( a.size() == 0 ) return true ; if ( a.size() > 1 ) return false ; return a.get(0).isPrimitive() ; } if ( v.isObject() ) { JsonObject obj = v.getAsObject() ; Set<String> x = obj.keySet() ; if ( x.size() == 0 ) return true ; if ( x.size() > 1 ) return false ; String k = obj.keys().iterator().next(); return obj.get(k).isPrimitive() ; } return false ; }
private void parseConf(BackupConfig cfg, String cfgFile) { try { JsonObject obj = JSON.read(cfgFile); cfg.port = obj.get(jPort).getAsNumber().value().intValue(); JsonArray a = obj.get(jLogs).getAsArray(); a.forEach(elt-> { BackupArea area = parseLogObject(cfg, elt); cfg.logs.add(area); }); } catch (Exception ex) { throw new CmdException("Failed to process configuration file: "+ex.getMessage()); } }
/** JSON value to int: return a {@code long}, or the default value. */ public static int getInt(JsonValue jv, int dftValue) { if ( jv.isNumber() ) { long z = jv.getAsNumber().value().longValue(); if ( z < Integer.MIN_VALUE || z > Integer.MAX_VALUE ) throw new NumberFormatException("Number out of range: "+jv); return (int)z; } return dftValue ; }
/** Create a safe copy of a {@link JsonValue}. * <p> * If the JsonValue is a structure (object or array), copy the structure recursively. * <p> * If the JsonValue is a primitive (string, number, boolean or null), * it is immutable so return the same object. */ public static JsonValue copy(JsonValue arg) { if ( ! arg.isArray() && ! arg.isObject() ) return arg; return createFrom(arg).build(); }
booleanResult = obj.get(kBoolean).getAsBoolean().value(); rows = null; return; if ( !obj.get(kHead).isObject() ) throw new ResultSetException("Key 'head' must have a JSON object as value: found: " + obj.get(kHead)); JsonObject head = obj.get(kHead).getAsObject(); if ( head.get(kLink).isString() ) { Log.warn(this, "Link field is a string, should be an array of strings"); links.add(head.get(kLink).getAsString().value()); } else { if ( !head.get(kLink).isArray() ) throw new ResultSetException("Key 'link' must have be an array: found: " + obj.get(kLink)); for ( JsonValue v : head.get(kLink).getAsArray() ) { if ( !v.isString() ) throw new ResultSetException("Key 'link' must have be an array of strings: found: " + v); links.add(v.getAsString().value()); JsonObject results = obj.get(kResults).getAsObject(); if ( !results.get(kBindings).isArray() ) throw new ResultSetException("'bindings' must be an array"); JsonArray array = results.get(kBindings).getAsArray(); Iterator<JsonValue> iter = array.iterator(); BindingMap b = BindingFactory.create(); JsonValue v = iter.next(); if ( !v.isObject() )
@Override public void keyPair(long currLine, long currCol) { keys.push(value.getAsString().value()) ; }
@Override public List<Id> listDatasets() { JsonObject obj = rpc(DeltaConst.OP_LIST_DS, emptyObject); JsonArray array = obj.get(DeltaConst.F_ARRAY).getAsArray(); List<Id> x = array.stream() .map(jv->Id.fromString(jv.getAsString().value())) .collect(Collectors.toList()) ; return x ; }
/** For walking structures */ public JsonObject getObj(String key) { return get(key).getAsObject() ; }
public static JsonValue accessPath(JsonValue obj, String... path) { for ( String p : path ) { if ( !obj.isObject() ) { throw new JsonException("Path traverses non-object") ; } obj = obj.getAsObject().get(p) ; } return obj ; }
/** Access a field of a JSON object : return a string or null */ public static String getStrOrNull(JsonObject obj, String field) { if ( obj == null ) System.err.println("getStrOrNull: null object"); JsonValue jv = obj.get(field); if ( jv == null ) return null; if ( jv.isString() ) return jv.getAsString().value(); return null ; }
private BackupArea parseLogObject(BackupConfig cfg, JsonValue elt) { String name = elt.getAsObject().get(jName).getAsString().value(); String dir = elt.getAsObject().get(jDir).getAsString().value(); String file = elt.getAsObject().get(jFile).getAsString().value(); if ( name == null || dir == null || file == null ) throw new CmdException("Required: \""+jName+", \""+jDir+"\" and \""+jFile+"\""); return new BackupArea(name, dir, file); }
@Override public List<DataSourceDescription> listDescriptions() { JsonObject obj = rpc(DeltaConst.OP_LIST_DSD, emptyObject); JsonArray array = obj.get(DeltaConst.F_ARRAY).getAsArray(); List<DataSourceDescription> x = array.stream() .map(jv->getDataSourceDescription(jv.getAsObject())) .collect(Collectors.toList()) ; return x ; }
public static JsonArray getArray(JsonObject jo, String k) { JsonValue jv = jo.get(k); return jv == null ? null : jv.getAsArray(); }
public static Version create(JsonValue version) { Objects.requireNonNull(version, "version"); if ( version.isNumber() ) { long ver = JSONX.getLong(version, -2); if ( ver < -1 ) throw new DeltaException("Bad version number: '"+JSON.toStringFlat(version)+"'"); return create(ver); } if ( version.isString() ) { try { String s = version.getAsString().value(); long ver = Long.parseLong(s); return create(ver); } catch (NumberFormatException ex) { throw new DeltaException("Bad format for version: '"+JSON.toStringFlat(version)+"'"); } } throw new DeltaException("Unrecognized JSON version: '"+JSON.toStringFlat(version)+"'"); }
while(execJsonItems.hasNext()) { JsonObject next = execJsonItems.next(); if (next.get("s").toString().contains("first")) { assertEquals(123, next.get("o").getAsNumber().value().intValue()); } else if (next.get("s").toString().contains("second")) { assertEquals("abc", next.get("o").getAsString().value()); } else if (next.get("s").toString().contains("third")) { assertEquals("def", next.get("o").getAsString().value());
@Override public JsonArray execJson() { checkNotClosed(); HttpQuery httpQuery = makeHttpQuery(); httpQuery.setAccept(WebContent.contentTypeJSON); JsonArray result = new JsonArray(); try(InputStream in = httpQuery.exec()) { JsonValue v = JSON.parseAny(in); if ( ! v.isArray() ) throw new QueryExecException("Return from a JSON query isn't an array"); result = v.getAsArray(); } catch (IOException e) { IO.exception(e); } finally { this.close(); } return result; }
private static Integer getInt(JsonObject json, String key) { if ( ! json.hasKey(key) ) throw new TDBException("StoreParamsCodec.getInt: no such key: "+key) ; Integer x = json.get(key).getAsNumber().value().intValue() ; return x ; }
booleanResult = obj.get(kBoolean).getAsBoolean().value() ; rows = null ; return ; if ( ! obj.get(kHead).isObject() ) throw new ResultSetException("Key 'head' must have a JSON object as value: found: "+obj.get(kHead)) ; JsonObject head = obj.get(kHead).getAsObject() ; if ( head.get(kLink).isString() ) links.add(head.get(kLink).getAsString().value()) ; if ( ! head.get(kLink).isArray() ) throw new ResultSetException("Key 'link' must have be an array: found: "+obj.get(kLink)) ; for ( JsonValue v : head.get(kLink).getAsArray() ) if ( ! v.isString() ) throw new ResultSetException("Key 'link' must have be an array of strings: found: "+v) ; links.add(v.getAsString().value()) ; JsonObject results = obj.get(kResults).getAsObject() ; if ( ! results.get(kBindings).isArray() ) throw new ResultSetException("'bindings' must be an array") ; JsonArray array = results.get(kBindings).getAsArray() ; Iterator<JsonValue> iter = array.iterator() ; if ( ! v.isObject() ) throw new ResultSetException("Entry in 'bindings' array must be an object {}") ;