迭代JsonObject属性

我想通过与Gson大包装JsonObject迭代。 我的最终目标是获得内部"unterfeld"对象中所有现有的三位数字code整数的ArrayList ,但是一旦我可以遍历外部对象的属性,这将是没有问题的。

 { "something1": { "bezeichnung": "something1", "unterfeld": [ { "bezeichnung": "bla1", "unterregionen": [ ], "code": 111 }, { "bezeichnung": "bla2", "unterregionen": [ ], "code": 222 } ], "code": 3 }, "something2": { "bezeichnung": "something2", "unterfeld": [ { "bezeichnung": "bla3", "unterregionen": [ ], "code": 333 } ], "code": 6 }, "something3": { "bezeichnung": "something3", "unterfeld": [ { "bezeichnung": "bla4", "unterregionen": [ ], "code": 444 }, { "bezeichnung": "bla5", "unterregionen": [ ], "code": 555 }, { "bezeichnung": "bla6", "unterregionen": [ ], "code": 666 } ], "code": 9 } } 

有没有什么干净的方法来做到这一点?

你可以使用entrySet迭代最外面的JsonObject的成员。

 JsonObject object; ArrayList<Integer> codes = new ArrayList<Integer>(); for (Map.Entry<String,JsonElement> entry : object.entrySet()) { JsonArray array = entry.getValue().getAsJsonObject().getAsJsonArray("unterfeld"); for (JsonElement codeHolder : array) { codes.add(codeHolder.getAsJsonObject().getAsJsonPrimitive("code").getAsInt()); } }