2012-03-28 66 views
0

我已經看了一個類似的問題在這裏:null pointer exception-parsing json with gson android空指針異常解析JSON 2.2

我得到同樣的錯誤,但我的對象略有不同,它只有在出現故障的Android 2.2而不是Android 2.3的。 Somme使用google搜索似乎是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; 
} 

}

的是參與了很多對象,但它是太長,這裏有它。詢問你是否需要查看其中的一個。

問候

回答

1

在GSON,我們一般採用列表< T>當我們處理JSON陣列。從你的JSON回答中,我發現沒有數組(只有對象內的對象)。如果你的新聞列表包含許多組,那麼JSON應該是這樣的:

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

謝謝你的回答!所以告訴我,如果我錯了,但它看起來像gson對象期望包含新聞列表等的組列表,並且json字符串只包含對象。所以,如果我確定我永遠不會得到一個數組,我可以將對象更改爲不包含列表。如果沒有,我需要問json webservice開發人員來更改答案。它也看起來像android 2.3能夠自己處理它。 – 2012-03-29 00:35:20

+0

是的,確切地說。您收到的JSON字符串應與您的私人類(NewsGroup和NewsList)相匹配。通常情況下,您應該能夠清楚地描述JSON對象,以便您可以在這之後對這些類進行建模。您也可以自行更改JSON響應,但這取決於Web服務是否在其他地方使用。 – Rorchackh 2012-03-29 01:13:22