private void addFlatList(String key, JsonObject json, List<KV> flat){ json.forEachProperty((s,o) ->{ if(null == o){ flat.add(new KV(key+"."+s,null)); return; } if(Beans.isSimpleProperty(o.getClass())){ flat.add(new KV(key+"."+s,o)); return; } if(o.getClass().isArray()){ Object[] arrays = (Object[])o; for (int i = 0; i < arrays.length; i ++){ addFlatList(key+"." + s + "["+i+"]",json.getObject(s),flat); } return; } if(o instanceof List){ List arrays = (List) o; for (int i = 0; i < arrays.size(); i ++){ addFlatList(key+"." + s + "["+i+"]",json.getObject(s),flat); } return; } addFlatList(key+"."+s,json.getObject(s),flat); }); } }