我已经在这里查看过类似的问题:null pointer exception-parsing json with gson android
我得到了相同的错误,但我的对象略有不同,它只在android 2.2上失败,但在android 2.3上失败。 Somme谷歌搜索看起来似乎是2.3中修复的已知2.2错误。但也许有一种解决方法?
所以这是代码:
NewsContainer newsContainer = gson.fromJson(response, NewsContainer.class);
json回答:
{"newsList":
{"group":
{"news":
{"news":
{"ranking":"1","id":"NEWS-33713","type":"Fnac","title":"LAURENT GERARD, GERARD COMME ...","subtitle":"THEATRE DES MATHURINS","preview":"http:\/\/www.fnacspectacles.com\/static\/0\/visuel\/grand\/215\/LAURENT-GERARD_2159024664536169906.jpg?1325241781000","details":"LAURENT GERARD, GERARD COMME ...\nDu: 24\/01\/2012 au 30\/06\/2012","address":"36, rue des Mathurins 75008 PARIS","url":"http:\/\/ad.zanox.com\/ppc\/?21135664C184852886&ULP=[[\/place-spectacle\/manifestation\/Seul-en-scene-LAURENT-GERARD--GERARD-COMME-----RARD.htm]]","start_date":"2012-01-24 00:00:00","poi": {"latitude":"48.8731960","longitude":"2.3257960"}
}
}
}
}
}
这是我的目标:
public class NewsContainer {
private NewsList newsList;
public NewsContainer() {
;
}
private static class NewsList {
List<NewsGroup> group;
}
public List<NewsGroup> getNewsList() {
return newsList.group;
}
public void setNewsList(List<NewsGroup> newsList) {
this.newsList.group = newsList;
}
}
public class NewsGroup implements Group{
private Long id;
private String title;
// @Exclude
private List<News> news;
public List<News> getNews() {
return news;
}
public NewsGroup() {
}
public void setNews(List<News> news) {
this.news = news;
}
public Long getId() {
return id;
}
public void setId(Long id) {
this.id = id;
}
public String getTitle() {
return title;
}
public void setTitle(String title) {
this.title = title;
}
@Override
public List<? extends Item> getItems() {
return news;
}
}
涉及的对象更多,但在这里使用它会太长。询问您是否需要查看其中一个。
此致
答案 0 :(得分:1)
在Gson中,我们通常使用List&lt; T>当我们处理JSON数组时。从你的JSON答案,我看到没有数组(只有对象内的对象)。如果您的新闻列表包含多个组,那么JSON应该是:
{"newsList":
"group" : [{"news": .... }, ... ]
}