private void reduce(JsonValue val) { if (val.isObject() && val.asObject().iterator().hasNext()) { elementIters.add(newIndexedPeekIterator(val.asObject())); } else if (val.isArray() && val.asArray().iterator().hasNext()) { switch (flattenMode) { case KEEP_ARRAYS: JsonifyArrayList<Object> array = newJsonifyArrayList(); for (JsonValue value : val.asArray()) { array.add(jsonVal2Obj(value)); } flattenedMap.put(computeKey(), array); break; default: elementIters.add(newIndexedPeekIterator(val.asArray())); } } else { String key = computeKey(); Object value = jsonVal2Obj(val); // Check NOT empty JSON object if (!(ROOT.equals(key) && emptyMap().equals(value))) flattenedMap.put(key, jsonVal2Obj(val)); } }
private void reduce(JsonValue val) { if (val.isObject() && val.asObject().iterator().hasNext()) { elementIters.add(newIndexedPeekIterator(val.asObject())); } else if (val.isArray() && val.asArray().iterator().hasNext()) { switch (flattenMode) { case KEEP_ARRAYS: JsonifyArrayList<Object> array = newJsonifyArrayList(); for (JsonValue value : val.asArray()) { array.add(jsonVal2Obj(value)); } flattenedMap.put(computeKey(), array); break; default: elementIters.add(newIndexedPeekIterator(val.asArray())); } } else { String key = computeKey(); Object value = jsonVal2Obj(val); // Check NOT empty JSON object if (!(ROOT.equals(key) && emptyMap().equals(value))) flattenedMap.put(key, jsonVal2Obj(val)); } }
public static Object ofJson(JsonValue json) { if(json.isObject()) { Iterator<JsonObject.Member> iterator = json.asObject().iterator(); Binder b = new Binder(); while (iterator.hasNext()) { JsonObject.Member m = iterator.next(); b.put(m.getName(),ofJson(m.getValue())); } return b; } else if(json.isBoolean()) { return json.asBoolean(); } else if(json.isNumber()) { return json.asDouble(); } else if(json.isString()) { return json.asString(); } else if(json.isArray()) { JsonArray ja = json.asArray(); List<Object> list = new ArrayList<>(); for(int i = 0; i < ja.size();i++) { list.add(ofJson(ja.get(i))); } return list; } return null; }
private Object jsonVal2Obj(JsonValue val) { if (val.isBoolean()) return val.asBoolean(); if (val.isString()) return val.asString(); if (val.isNumber()) return new BigDecimal(val.toString()); switch (flattenMode) { case KEEP_ARRAYS: if (val.isArray()) { JsonifyArrayList<Object> array = newJsonifyArrayList(); for (JsonValue value : val.asArray()) { array.add(jsonVal2Obj(value)); } return array; } else if (val.isObject()) { if (val.asObject().iterator().hasNext()) { return newJsonFlattener(val.toString()).flattenAsMap(); } else { return newJsonifyLinkedHashMap(); } } default: if (val.isArray()) { return newJsonifyArrayList(); } else if (val.isObject()) { return newJsonifyLinkedHashMap(); } } return null; }
private Object jsonVal2Obj(JsonValue val) { if (val.isBoolean()) return val.asBoolean(); if (val.isString()) return val.asString(); if (val.isNumber()) return new BigDecimal(val.toString()); switch (flattenMode) { case KEEP_ARRAYS: if (val.isArray()) { JsonifyArrayList<Object> array = newJsonifyArrayList(); for (JsonValue value : val.asArray()) { array.add(jsonVal2Obj(value)); } return array; } else if (val.isObject()) { if (val.asObject().iterator().hasNext()) { return newJsonFlattener(val.toString()).flattenAsMap(); } else { return newJsonifyLinkedHashMap(); } } default: if (val.isArray()) { return newJsonifyArrayList(); } else if (val.isObject()) { return newJsonifyLinkedHashMap(); } } return null; }