2016-12-02 188 views
0

我知道這個問題已經提出了很多,但到目前爲止,我沒有真正找到一個答案,幫助我解決了我的問題(我嘗試了其中的一些)。Gson在嵌套對象中嵌套對象

基本上我從這個API http://api.tvmaze.com/singlesearch/shows?q=izombie&embed=episodes得到一個JSON響應,嵌套對象中有很多嵌套對象。例如,使用JSON在線查看器查看它可以給我以下輸出: 對我來說有趣的是底部。更具體的「情節」對象。到目前爲止,我可以從JSON數組中提取基本信息(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處理嵌入對象就好了。假設你有一個嵌入Bar的Foo類,你只需要做

class Foo { 
    public Bar bar; 
} 

它會爲你解析欄。這是遞歸的。如果您需要數組,請使用List<Bar>,它將解析數組。

+0

如果您要訪問酒吧,您是否可以從中獲得對Foo的引用? – silversunhunter