将json文件读入对象后,为什么会得到NPE?

时间:2019-09-22 08:55:45

标签: java json gson

我正在尝试从json文件中读取数据到我的家庭课程中。 当我尝试访问数据时,我得到了NPE

Gson gson = new Gson();

    try (Reader reader = new FileReader("family.json")) {

        Family family = gson.fromJson(reader, Family.class);
        System.out.println(family.toString());
    } catch (IOException e) {
        e.printStackTrace();
    }

家庭班

public class Family {
List<Person> people;

人员班

public class Person {
private String firstname;
private String lastname;

json文件

{ "members" : [
{"firstname":"asdf", "lastname":"asdf"}, 
{"firstname":"qwer", "lastname":"qwer"}, 
{"firstname":"fghj", "lastname":"fghj"}
]

}

任何帮助/提示将不胜感激

1 个答案:

答案 0 :(得分:1)

您正在获取NPE,因为json文件具有成员列表,而映射的Family类具有“人员”列表。

将人员列表更改为家庭班成员,

List<Person> members;

希望有帮助。