[英]Objects are empty after parsing list with JSON
我目前正在尝试使用GSON解析一些JSON-Data:
[{
"lvTypePathStr": "teamList",
"lvIDPathStr": "155213",
"lvTypeLabelStr": "\/ HSG Pinnau",
"dataList": [{
"lvTypeNext": "",
"lvIDNext": 0,
"levelTypeLabel": "",
"teamID": "353197",
"gClassID": "22566",
"gClassSname": "M-HL",
"clubSname": "HSG Pinnau",
"clubLname": "HSG Pinnau",
"teamSname": "HSG Pinnau"
}, {
"lvTypeNext": "",
"lvIDNext": 0,
"levelTypeLabel": "",
"teamID": "353226",
"gClassID": "22569",
"gClassSname": "M-BL-1",
"clubSname": "HSG Pinnau",
"clubLname": "HSG Pinnau",
"teamSname": "HSG Pinnau 2"
}],
"errCode": 0
}]
相应的对象是:
容纳所有队伍的名单:
public class JSONTeamList extends JSONResponse {
private List<JSONTeam> dataList = new ArrayList<JSONTeam>();
public List<JSONTeam> getDataList() {
return dataList;
}
public void setDataList(List<JSONTeam> dataList) {
this.dataList = dataList;
}
从JSONResponse继承仅用于常见属性:
public class JSONResponse {
protected String lvTypePathStr;
protected String lvIDPathStr;
protected String lvTypeLabelStr;
protected int errorCode;
/** ... getter and setter for all attributes ... */
}
最后是车队本身:
public class JSONTeam {
private String lvTypeNext;
private int lvIDNext;
private String levelTypeLabel;
private String teamID;
private String gClassID;
private String gClassSName;
private String clubSName;
private String clubLName;
private String teamSName;
/** Getter and setter for all attributes... */
}
为了更好的可读性,我省略了getter和setter,但是它们是使用IntelliJ自动生成的,格式通常为get {variable}和set {variable}。
解析代码为:
URL url = new URL(baseURL + clubId);
URLConnection con = url.openConnection();
Reader in = new BufferedReader(new InputStreamReader(con.getInputStream()));
JSONTeamList[] list = gson.fromJson(in, JSONTeamList[].class);
现在,当我解析JSON时,会得到一个Teamlist,其中填充了团队,但团队中的所有属性均为空。 我遇到了这个问题,但我认为它不适合这种情况,因为这是一个嵌套列表。 我错过了什么让GSON正确填充团队?
在此先感谢,Sverre
问题解决了,变量名中的大写字母是错误的,例如gClassSname
是变量gClassSName
但应该是gClassSname
。
我花了两个小时才意识到这是如此简单...
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.