如何迭代json对象数组(gson)

时间:2013-01-06 13:16:26

标签: java json gson

我正在进行船舶防御游戏 我在获取航点数组时遇到问题。 地图包含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();

如何预测对象数组?

2 个答案:

答案 0 :(得分:16)

您可以使用以下代码简化代码并检索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():
}

答案 1 :(得分:2)

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