2013-01-06 12 views
5

私は船の防衛ゲームを作っています。
ウェイポイントの配列を取得する際に問題があります。私はこの1つを書いたが、それは動作しませんjsonオブジェクトの配列を反復する方法(gson)

jse = new JsonParser().parse(in); 
    in.close(); 

    map_json = jse.getAsJsonObject(); 
    JsonObject wayPoints = map_json.getAsJsonObject("waypoints").getAsJsonObject("ship"); 

: マップ(GSONを使用)JSON形式

{ 
"waypoints" : { 
    "ship": { 
     "first_type": [[0,0],[5,7],[2,8],[4,4],[10,10],[12,0],[0,12],[12,8],[8,8]]        
    }, 
    "boat": { 
     "first_type": [[0,0],[5,7],[2,8],[4,4],[10,10],[12,0],[0,12],[12,8],[8,8]]        
    } 
    } 
} 

に私のコードが含まれています。

JsonArray asJsonArray = wayPoints.getAsJsonObject().getAsJsonArray(); 

オブジェクトの配列をどのようにforeachできますか?

答えて

15

次のコードを使用してコードを簡略化し、first_type配列を取得することができます。同じコードは、second_typeアレイでも同様に機能します。

JsonArray types = map_json 
    .getAsJsonObject("waypoints") 
    .getAsJsonObject("ship") 
    .getAsJsonArray("first_type"; 

for(final JsonElement type : types) { 
    final JsonArray coords = type.getAsJsonArray(): 
} 
2

wayPointsはJSONオブジェクトです。それにはshipという別のJSONオブジェクトが含まれています。 shipには、first_typeというJSON配列が含まれています。だからshipオブジェクトからfirst_type配列を取得し、この配列を反復処理する必要があります。