我会通过大包装喜欢迭代JsonObject与GSON。我的最终目标是获取内部对象ArrayList中所有现有的三位数code整数"unterfeld",但是一旦我可以遍历外部对象的属性,就没有问题。
JsonObject
ArrayList
code
"unterfeld"
{ "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。
entrySet
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()); } }