protected void flatten(@Nonnull JsonObject root, @Nonnull String path, @Nonnull String separator, JsonElement element) { JsonType type = element.type(); switch (type) { case array: JsonArray arr = element.asArray(); for(int i=0; i<arr.size();i++) { if(path.length()>0) { flatten(root,path+separator+i,separator,arr.get(i)); } else { flatten(root,""+i,separator,arr.get(i)); } } break; case object: if(path.length()>0) { element.asObject().forEach((key, value) -> flatten(root,path+separator+key,separator,value)); } else { element.asObject().forEach((key, value) -> flatten(root,key,separator,value)); } break; default: root.put(path, element); break; } }
private Object translate(JsonElement e) { if(e.isObject()) { JsonObject o = e.asObject(); Map<String,Object> map = new LinkedHashMap<>(); o.forEach((key,value) -> { map.put(key,translate(value)); }); return map; } else if(e.isArray()) { JsonArray a = e.asArray(); List<Object> list = new ArrayList<>(); a.forEach(element -> { list.add(translate(element)); }); return list; } else { return e.asPrimitive().value(); } }
case object: yaml.writeStartObject(); e.asObject().forEach((k,v) -> { try { yaml.writeFieldName(k);
public static NSObject toNsObject(JsonObject o) { NSDictionary dict = new NSDictionary(); o.forEach((k,v) -> { if(v.isObject()) { dict.put(k, toNsObject(v.asObject())); } else if(v.isArray()) { dict.put(k, toNsObject(v.asArray())); } else { dict.put(k, toNsObject(v.asPrimitive())); } }); return dict; }