【问题标题】:null pointer exception-parsing json with gson android 2.2带有gson android 2.2的空指针异常解析json
【发布时间】:2012-03-29 02:01:24
【问题描述】:

我已经在这里看过一个类似的问题: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;
}

}

这涉及到更多的对象,但是在这里放置它会太长。询问您是否需要看其中之一。

问候

【问题讨论】:

    标签: android json nullpointerexception gson android-2.2-froyo


    【解决方案1】:

    在Gson中,我们在处理JSON数组的时候一般使用List。从您的 JSON 答案中,我看到没有数组(只有对象中的对象)。如果您的新闻列表包含许多组,那么 JSON 应该是这样的:

    {"newsList":
        "group" : [{"news":  .... }, ... ]
    }
    

    【讨论】:

    • 感谢您的回答!所以告诉我我是否错了,但看起来 gson 对象需要一个包含新闻等列表的组列表,而 json 字符串只包含对象。所以如果我确定我永远不会得到一个数组,我可以将对象更改为不包含列表。如果没有,我需要请 json webservice 开发人员更改答案。看起来 android 2.3 也可以自己处理。
    • 是的,完全正确。您收到的 JSON 字符串应该与您的私有类(NewsGroup 和 NewsList)相匹配。通常,您应该能够获得 JSON 对象的清晰描述,以便您可以在它之后对这些类进行建模。您也可以更改 JSON 响应本身,但这取决于 Web 服务是否在其他地方使用。
    猜你喜欢
    • 2012-03-30
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-03-31
    • 2023-01-26
    • 2015-10-29
    • 2016-11-19
    • 2014-01-18
    相关资源
    最近更新 更多