2016-12-02 23 views
0

この質問はかなり頻繁に起こっていますが、これまでのところ私は自分の問題を解決するのに役立つ答えを実際には見つけませんでした(私はそれらのいくつかを試しました)。入れ子オブジェクト内のGsonネストされたオブジェクト

基本的に私はこのAPIのhttp://api.tvmaze.com/singlesearch/shows?q=izombie&embed=episodesからJSON-Responseを取得しています。ネストされたオブジェクト内にかなりの数のネストされたオブジェクトがあります。たとえば、JSONオンラインビューアで見てみると、次のような結果が得られます。 私にとって興味深いのは、底部です。より具体的には、「エピソード」オブジェクトである。これまでJSON-Array(id、url、name、type、...)から基本情報を抽出することはできますが、 "triple(_embedded> episodes> ...)"のネストされたオブジェクトは取得できません。

JSONレスポンスを解析するためのコード:

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を取得していますが、これは現在ほとんど無関係です。

答えて

1

GSONは埋め込みオブジェクトをうまく処理します。バーが埋め込まれたクラスFooを持っているとしましょう。

class Foo { 
    public Bar bar; 
} 

これはバーを解析します。そしてそれは再帰的に働く。配列が必要な場合はList<Bar>を使用し、配列を解析します。

+0

バーにアクセスする場合は、そこからFooへの参照を得ることができますか? – silversunhunter

関連する問題