2013-01-06 12 views
5

Ich mache ein Schiff-Verteidigungs-Spiel.
Ich habe ein Problem mit dem Array der Wegpunkte. Die Karte enthält die JSON Format (mit GSON)Wie man das Array von JSON-Objekten (Gson) Iteriert

{ 
"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]]        
    } 
    } 
} 

Mein Code:

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

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

ich dieses geschrieben habe, aber es funktioniert nicht.

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

Wie kann ich die Anordnung der Objekte vorhersagen?

Antwort

15

Sie können Ihren Code vereinfachen und das Array first_type mithilfe des folgenden Codes abrufen. Derselbe Code sollte auch für das second_type Array funktionieren:

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

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

wayPoints ist ein JSON-Objekt. Es enthält ein weiteres JSON-Objekt mit dem Namen ship. Und ship enthält ein JSON-Array mit der Bezeichnung . Sie sollten also das Array first_type vom Objekt ship abrufen und dieses Array durchlaufen.