2016-12-29 137 views
-7

我有一個JSON從OMDb這樣得到:解析複雜的JSON對象與GSON

{ 
"Search": 
    [{"Title":"Seven Pounds", 
     "Year":"2008", 
     "imdbID":"tt0814314", 
     "Type":"movie", 
     "Poster":"someUrl"}, 
    {"Title":"Seven Samurai", 
     "Year":"1954", 
     "imdbID":"tt0047478", 
     "Type":"movie", 
     "Poster":"someUrl"} 
    ],"totalResults":"1048", 
    "Response":"True" 
} 

我想提取的每一部電影,並將其存儲到一個列表,所以我創建了一個類MovieContainer與列表電影,其中包含一組字符串。

我用

MovieContainer cnt=new Gson().fromJson(jstring, MovieContainer.class); 

其中的jstring是像上面的一個JSON字符串,但是當我試圖遍歷列表中的容器,我得到一個NullPointerException。

由於我是Gson的初學者,我無法找出原因,我應該如何解析Json?

編輯:我知道什麼是NullPointerException,但我不明白爲什麼Java在我的示例中拋出它。

我MovieContainer類:

public class MovieContainer { 
    public List<Movie> movies; 
} 

我的電影類:

public class Movie { 
    String Title; 
    String Year; 
    String Poster; 
    String imdbID; 
    String Type; 
} 

我認爲fromJson方法應填寫我的列表匹配的字段名稱的信息,但是名單的電影指向NULL 。

+2

可能重複[什麼是NullPointerException,以及如何解決它?](http://stackoverflow.com/questions/218384/what-is-a-nullpointerexception-and-how-doi-i-fix -it) –

+1

請[編輯]你的問題,包括[mcve]。 –

+0

學習閱讀JSON(轉到json.org)。最外層的對象是一個名爲「Search」的單個元素的字典。 –

回答

0

如果您想首先搜索標題,您需要在需要迭代和查找標題的數據中獲得「搜索」。

因爲你的Gson包含3個元素,「Search」,「totalResults」和「Response」。