【发布时间】:2017-05-13 20:41:24
【问题描述】:
我从 IMDB 收到以下 JSON 响应。
{
"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,其中每个电影包含描述有关该电影的详细信息的字符串属性,例如标题,yiddi yadda - 你懂的!
我用下面的代码sn-p来;
MovieContainer cnt = new Gson().fromJson(jstring, MovieContainer.class);
其中 jstring 是一个有效的 json 字符串,类似于上面的 json 字符串示例,但是当我尝试遍历 MovieContainer 实例中的 List 时,我得到了 NullPointerException。
我是 GSON 新手,因此不确定是什么原因?
编辑:我确实知道 NullPointerException 是什么,但我不明白为什么 Java 在我的示例中抛出它。
我的 MovieContainer 类:
public class MovieContainer {
public List<Movie> movies;
}
我的电影课:
public class Movie {
String Title;
String Year;
String Poster;
String imdbID;
String Type;
}
我希望调用 fromJson 方法以使用与字段名称匹配的信息填充我的列表,但列表电影点为空。
【问题讨论】:
-
请edit您的问题包含minimal reproducible example。
-
学习阅读 JSON(访问 json.org)。最外面的对象是一个字典,其中包含一个名为“Search”的元素。
-
@HotLicks 最外面的字典有 3 个元素,“Search”、“totalResults”和“Response”。
-
@ErwinBolwidt - 正确。我错过了那些格式差的。