【发布时间】:2011-10-24 12:00:36
【问题描述】:
我有一个 ASP.NET Web 服务,我从我的 Android 应用程序中调用它并得到一个包含此 JSON 数据的字符串:
{
"d": [{
"__type": "Trafikverket_API.Models.Trafiklage",
"TagGrupp": "44be2cce-3055-4d22-aaf2-00e098b0422e",
"Fran": "Gävle,Uppsala,Stockholm",
"Till": "Norrköping,Linköping",
"TrafikplatsNamn": "Nyköping C",
"VisaAnkomst": "true",
"InstalldAnkomst": "false",
"InstalldAvgang": "false",
"SparangivelseAvgang": "6",
"AnmarkningarAvgang": "SJ Regional",
"AnnonseratTagId": "249",
"SparangivelseAnkomst": "6",
"AnmarkningarAnkomst": "SJ Regional",
"AnnonseradAnkomstTid": "21:50",
"AnnonseradAvgangTid": "21:53",
"BeraknadAvgangTid": null,
"BeraknadAnkomstTid": null,
"AnnonseradTidpunktAvgang": "2011-10-23T21:53:00+02:00"
}, {
"__type": "Trafikverket_API.Models.Trafiklage",
"TagGrupp": "eae407a9-61ba-43f4-9c53-c666c2a3f117",
"Fran": "Stockholm,Södertälje",
"Till": "Norrköping,Linköping",
"TrafikplatsNamn": "Nyköping C",
"VisaAnkomst": "true",
"InstalldAnkomst": "false",
"InstalldAvgang": "false",
"SparangivelseAvgang": "6",
"AnmarkningarAvgang": "SJ Regional",
"AnnonseratTagId": "251",
"SparangivelseAnkomst": "6",
"AnmarkningarAnkomst": "SJ Regional",
"AnnonseradAnkomstTid": "22:52",
"AnnonseradAvgangTid": "22:54",
"BeraknadAvgangTid": null,
"BeraknadAnkomstTid": null,
"AnnonseradTidpunktAvgang": "2011-10-23T22:54:00+02:00"
}, ..... ]
}
我有一个名为 StationInfo 的对象,如下所示:
public class DataModel
{
public Boolean VisaAnkomst;
public String TagGrupp;
public String Fran;
public String Till;
public String TrafikplatsNamn;
public Boolean InstalldAnkomst;
public Boolean InstalldAvgang;
public String SparangivelseAvgang;
public String AnmarkningarAvgang;
public Integer AnnonseratTagId;
public String SparangivelseAnkomst;
public String AnmarkningarAnkomst;
public String AnnonseradAnkomstTid;
public String AnnonseradAvgangTid;
public String BeraknadTidpunktAnkomst;
public String BeraknadTidpunktAvgang;
public String VerkligAnkomstTid;
public String VerkligAvgangTid;
public String BeraknadAvgangTid;
public String BeraknadAnkomstTid;
public String AnnonseradTidpunktAvgang;
public String VerkligTidpunktAnkomst;
}
当我运行这个时:
Gson gson = new Gson();
DataModel[] stationInfos = gson.fromJson(result, DataModel[].class);
我得到了这个异常:
com.google.gson.JsonParseException: Expecting object but found array
我想我需要一些与对象“d”匹配的对象,但我该怎么做呢?
【问题讨论】:
-
尝试添加新类
class DotNetDataModel { public DataModel[] d; }并像这样使用DotNetDataModel [] resp = gson.fromJson(result, DotNetDataModel.class); DataModel[] stationInfos = resp.d;