首页 > 解决方案 > 有没有办法在数组中命名每个 JSONObject?

问题描述

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

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

标签: javajsongson

解决方案


是的,但是 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);
        }

推荐阅读