有没有办法在数组中命名每个JSONObject?

时间:2018-05-18 05:56:54

标签: java json gson

{
  "Object1": {
    "description": "An object",
    "data": "more data"
  },
  "Object2": {
    "description": "An object",
    "data": "more data"
  }
}

我如何使用GSON迭代此JSON对象中的元素,以便轻松地逐个解析每个元素?

3 个答案:

答案 0 :(得分:0)

是的,但是PrabhakarP是对的,JSON中的关联数组是对象。所以在你的情况下,

{
  "Object1": {
    "description": "An object",
    "data": "more data"
  }
}

你会有一个元对象包含每个数组元素作为属性,这没有多大意义。你应该以不同的方式解析它。

但如果您仍然需要,请在GSON中尝试,

 JsonArray body = gson.fromJson(yourString, JsonArray.class);
        JSONObject metaObj = new JSONObject();  

        for (JsonElement currEle : paymentsArray) {
            JSONObject currObj = currEle.getAsJsonObject();
            String nameVal = currObj.get("name");
            currObj.remove("name");
            metaObj.addProperty(nameVal, currObj);
        }

答案 1 :(得分:0)

我建议你为数组中的每个对象添加一个属性并使用它

答案 2 :(得分:0)

我查看了手册页,发现我可以遍历对象中的成员集。

JsonObject obj = gson.fromJson(jsonFile, JsonObject.class);
for(Map.Entry<String, JsonElement> element : obj.entrySet()) {
    Object obj = gson.fromJson(element.getValue(), Object.class);
    // do stuff with the object
}