【问题标题】:Gson nested objects within nested objects嵌套对象中的 Gson 嵌套对象
【发布时间】:2016-12-02 22:17:54
【问题描述】:

我知道这个问题经常被提出,但到目前为止我还没有真正找到帮助我解决问题的答案(我尝试了其中的一些)。

基本上我从这个 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,但现在它几乎无关紧要。

【问题讨论】:

    标签: java arrays json nested gson


    【解决方案1】:

    GSON 可以很好地处理嵌入对象。假设您有一个嵌入 Bar 的 Foo 类,您只需这样做

    class Foo {
       public Bar bar;
    }
    

    它会为你解析 bar。这是递归的。如果需要数组,请使用List<Bar>,它会解析数组。

    【讨论】:

    • 如果你要访问 bar,你能从中获得对 Foo 的引用吗?
    猜你喜欢
    • 1970-01-01
    • 2018-05-11
    • 1970-01-01
    • 2018-10-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-05-06
    • 1970-01-01
    相关资源
    最近更新 更多