如何使用Gson解析这种JSON格式

时间:2017-10-23 17:13:43

标签: java android json gson

我正在使用这种格式的Json

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

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

4 个答案:

答案 0 :(得分:0)

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");
}

答案 1 :(得分:0)

这个类结构适用于Gson:

public class Response {

    private List<Sheet> Sheet1;
}

public class Sheet {

    private String Title;
    private String Link;
}

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

答案 2 :(得分:0)

创建类:

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));
    }

答案 3 :(得分:0)

这个类结构适用于Gson:

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

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