7

我正在制作一个船舶防御游戏。
我在获取航点数组时遇到问题。地图包含JSON格式(使用GSON

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

我的代码:

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

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

我写了这个,但它不起作用。

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

我怎样才能foreach对象数组?

4

2 回答 2

18

您可以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():
}
于 2013-01-06T13:28:01.363 回答
2

wayPoints是一个 JSON 对象。它包含另一个名为ship. 并ship包含一个名为first_type. 所以你应该first_type从对象中获取数组ship,然后迭代这个数组。

于 2013-01-06T13:26:07.560 回答