我知道这个问题经常被提出,但到目前为止我还没有真正找到可以帮助我解决问题的答案(我尝试了其中的一些)。
基本上,我从这个 API http://api.tvmaze.com/singlesearch/shows?q=izombie&embed=episodes 获得 JSON 响应并且嵌套对象内还有相当多的嵌套对象。例如,使用 JSON 在线查看器查看它会得到以下输出: 对我来说有趣的是底部部分。更具体地说是“剧集”对象。到目前为止,我可以从 JSON 数组中提取基本信息(id、url、名称、类型...),但无法获取“三重(_embedded > Episodes > ...)”嵌套对象。
解析 JSON-Response 的代码:
public void parseJSON(String jsonResponse) throws IOException {
GsonBuilder builder = new GsonBuilder();
Gson gson = builder.create();
Show show = gson.fromJson(jsonResponse, Show.class);
System.out.println(show.getID() + "\n" + show.getName() + "\n" + show.getStatus());
}
表演类:
public class Show {
private int id;
private String name;
private String status;
public int getID() {
return id;
}
public String getName() {
return name;
}
public String getStatus() {
return status;
}
}
那么我如何获取剧集数组中从 0 到结尾的所有信息呢?非常感谢任何帮助!
旁注:我使用名为“readUrl”的方法获取 jsonResponse,但它现在几乎不相关。
最佳答案
GSON 可以很好地处理嵌入对象。假设您有一个嵌入了 Bar 的 Foo 类,您只需这样做
class Foo {
public Bar bar;
}
它会为你解析 bar。这是递归的。如果需要数组,请使用 List<Bar>
它会解析数组。
关于java - Gson 嵌套对象内的嵌套对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40941704/