【发布时间】:2014-08-21 19:22:41
【问题描述】:
我正在从 web api 接收一个 Json 对象,
如下所示:
{"Sites":[{"SiteId":1,"SiteName":"Site 1"},{"SiteId":2,"SiteName":"Site 2"},{"SiteId":3,"SiteName":"Site 3"}]}
现在我有以下代码,它使用 gson 将其解析为 POJO:
@Override
protected Response<T> parseNetworkResponse(NetworkResponse response) {
try {
String json = new String(response.data,
HttpHeaderParser.parseCharset(response.headers));
return Response.success(gson.fromJson(json, clazz),
HttpHeaderParser.parseCacheHeaders(response));
} catch (UnsupportedEncodingException e) {
return Response.error(new ParseError(e));
} catch (JsonSyntaxException e) {
return Response.error(new ParseError(e));
}
}
这是我的 POJO:
public class UsersSitesViewModel
{
public List<UserSite> Sites;
}
public class UserSite {
public UserSite(int siteId, String siteName)
{
SiteId = siteId;
SiteName = siteName;
}
public int SiteId;
public String SiteName;
}
但是现在当我在我的代码中运行并调试以查看它创建的 pojo 时:
如下所示:
为什么要在我的数组中插入 10 个 Null 值?
这是不正确的!
【问题讨论】:
-
那么问题出在哪里?
-
当您以编程方式解析数组时,您实际上有 12 个元素还是只有 3 个元素?也许只是列表的表示有问题?
-
@user3218114 问题是它创建的列表中有一大堆空值,
-
@Nico 收到的 Json 如问题所示。列表中应该只有 3 项。
-
它没有。它仅用于缓冲,这意味着分配内存。好吧,别担心。调试器是像你我一样的人:D
标签: java android json gson pojo