2016-12-29 133 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”。