【发布时间】:2016-12-08 09:28:55
【问题描述】:
我有 Json 文件:
{
"persons": [
{
"name": "Dan",
"surename": "Govi",
"PersonData": {
"height ": "180",
"weight": "80"
}
},
{
"name": "John",
"surename": "Babu",
"PersonData": {
"height ": "160",
"weight": "75"
}
},
{
"name": "Ivan",
"surename": "Slav",
"PersonData": {
"height ": "200",
"weight": "160"
}
}
]
}
这是我的 PersonListHolder 类:
public class PersonListHolder {
private List<Persons> personList;
public List<Persons> getPersonList() {
return personList;
}
}
人物类:
public class Persons {
String name;
String surename;
PersonData personData;
public PersonData getPersonData() {
return personData;
}
public class PersonData{
String height ;
String weight;
public String getHeight() {
return height;
}
public String getWeight() {
return weight;
}
public String getMaxAverageBitrate() {
return MaxAverageBitrate;
}
}
public String getName() {
return name;
}
public String getSureName() {
return surename;
}
}
我如何获得它们:
Gson gson = new Gson();
gson.fromJson(myJson,PersonListHolder.class);
PersonListHoldertst tst = gson.fromJson(myJson,PersonListHolder.class);
Persons cd1 = tst.getPersonList().get(0);
Log.d("DTAG","D1: "+cd1.getName());
Persons.PersonData cd2 = cd1.getPersonData();
Log.d("DTAG","D2: "+cd2.getHeight());
在第一个日志中我看到了结果,但在第二个日志中我得到了 null
Attempt to invoke virtual method 'java.lang.String ---- on a null object reference
【问题讨论】:
-
您需要在您希望 Gson 解析的每个字段上添加
@Expose注释。personList应该是persons