【问题标题】:How to parse this format of JSON using Gson如何使用 Gson 解析这种格式的 JSON
【发布时间】:2017-10-23 17:13:42
【问题描述】:

我有这种格式的 Json

{
    "Sheet1":
        [
            {
                "Title":"facebook",
                "Link":"facebook.com"
            },{
                "Title":"gmail",
                "Link":"mail.google.com"
            }
        ]
}

当我尝试使用 pojo 转换它时,我得到了两个类并且我无法实现强制关闭错误 请帮帮我。

【问题讨论】:

标签: java android json gson


【解决方案1】:

Sheet1 是一个数组。

JSONArray array = (JSONArray) object.get("Sheet1");

for (int i = 0; i < array.length(); i++) {
    String title = array.getJSONObject(i).getString("Title");
    String link = array.getJSONObject(i).getString("Link");
}

【讨论】:

  • 我正在使用 Gson 和 volley 库。
  • 你问如何解析 json ......这就是你解析 json 的方式。
【解决方案2】:

这个类结构适用于 Gson:

public class Response {

    private List<Sheet> Sheet1;
}

public class Sheet {

    private String Title;
    private String Link;
}

您的顶级响应有一个元素"Sheet1",它是一个项目列表。列表中的每一项都有两个元素,"Title""Link"

【讨论】:

  • getter 和 setter 怎么样
  • 如果你想添加它们
【解决方案3】:

创建类:

public class Sheet {
    String Title;
    String Link;
}

public class Sheets {
    Collection<Sheet> Sheet1;
}

反序列化后:

        public static void main(String[] args) throws Exception {
        Gson gson = new Gson();
        String filename="pathTo/sheet.json";
        JsonReader reader = new JsonReader(new FileReader(filename));
        Sheets sheet1= gson.fromJson(reader, Sheets.class);
        System.out.println(gson.toJson(sheet1));
    }

【讨论】:

    【解决方案4】:

    这个类结构适用于 Gson:

    public class Response 
    { 
      private List<Sheet> Sheet1; 
    } 
    public class Sheet 
    { 
      private String Title; 
      private String Link; 
    }
    

    您的顶级响应有一个元素“Sheet1”,它是一个项目列表。列表中的每个项目都有两个元素,“标题”和“链接”。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2023-03-05
      • 2018-03-01
      • 2021-08-29
      • 2019-04-11
      • 1970-01-01
      • 1970-01-01
      • 2019-08-19
      • 1970-01-01
      相关资源
      最近更新 更多