Gson]1 を使って、大きなラッピングを施した JsonObject
を繰り返し処理したいと思います。私の最終的な目的は、内側の "unterfeld"
オブジェクトに存在するすべての3桁の 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
}
}
何かいい方法はないでしょうか?
一番外側の 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());
}
}