我正在尝试像这样从JsonObject获取数据:

{
  "status": "ok",
  "data_EN": [
    {
      "id": 1,
      "url" :"http://exemple.com"
    }
  ],
  "data_FR": [...],
  "data_ES": [...]
}


我创建了一种获取此响应的方法,我只能使用JSONArray获取一个数组,但是我找不到从该数组获取所有数据的方法

 ItemGroup itemGroup = new ItemGroup();
 JSONObject jsonObject = new JSONObject(response);

 JSONArray jsonArray = jsonObject.getJSONArray("data_EN");
 itemGroup.setTitle("data_EN");
 List<Data> items = new Gson().fromJson(jsonArray.toString(), new TypeToken<List<Data>>() {
                            }.getType());

 itemGroup.setData(items);
 itemGroups.add(itemGroup);


谢谢你的帮助。

最佳答案

尝试创建模型:


  ItemResponse.class


public class ItemResponse {
    private String status;
    private List<Item> data_EN;
    private List<Item> data_FR;
    private List<Item> data_ES;
}



  Item.class


public class Item {
    private long id;
    private String url;
}


因此,您可以通过以下方式获取它:

ItemResponse itemResponse = new Gson().fromJson(jsonObject.toString(), ItemResponse.class);

10-07 23:51