でリストを解析した後、空になっている:オブジェクトは、私は現在GSONを使用して、いくつかのJSON-データを解析しようとしているJSON
[{
"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からInheiring
:
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を省略しましたが、彼らはいつものように、フォームのget {変数}にし、集合{変数}のIntelliJを使用して自動生成されています。
解析コードは次のとおりです。私はJSONをパースするとき
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);
は今、私はチームが移入が、チーム内のすべての属性が空であるさTeamlistを取得します。 私はthis質問に出くわしましたが、これはネストされたリストなので、このケースとは一致しないと思います。 GSONにチームを正しく配置させるために、私は何を欠場しましたか?
gson.fromJson()を使用してGSON解析コードを提供してください。 –
追加、編集を参照してください。 – SverreN
'dataList'はトップレベルではなく、JSONの最初の要素に含まれています。最初に外側の配列の要素に落とす必要があり、それぞれの要素(この場合は1つだけです)には 'lvTypePathStr'や' dataList'があります。あなたが1つのレベルを高すぎるように見せているようです。 –