2012-04-22 66 views
0

我一直沒有使用JSON很長時間。我有以下回應,我正在努力瞭解如何調用「主題」的詳細信息。我認爲這是一個JSONObject,但Android的logcat告訴我沒有找到JSONObject [「Topic」]。它不是JSONObject。它不是JSONArray。它是什麼?

[{"Id":1,"TopicId":1,"UserGuid":"C214ED74-07A7-409E-84FF-AF0457CF581A","Topic":{"Id":1,"AdminUserGuid":"C214ED74-07A7-409E-84FF-AF0457CF581A","Title":"Test Topic 1","AccessType":"public"}}] 

任何幫助,非常感謝。

+0

很確定這是一個數組。 – BoltClock 2012-04-22 15:26:32

+0

另請參閱[JSON文檔](http://www.json.org/)。 – scessor 2012-04-22 15:28:20

+0

感謝您的快速回復。當我試圖將其稱爲JSONArray時,獲取JSONObject [「Topic」]不是JSONArray – alockrem 2012-04-22 15:33:30

回答

3

這是一個元素,具有多種特性的JSONObject,其中之一是一個JSONObject名爲話題JSONArray:

JSONArray posts = new JSONArray(myJsonString); 
JSONObject post = posts.getJSONObject(0); 
JSONObject topic = post.getJSONObject("Topic"); 
+0

這就是我的想法。當我調用getInt(「Id」)時,它可以工作。當我調用getJSONObject(「Topic」)時,它告訴我找不到JSONObject [「Topic」]。 – alockrem 2012-04-22 15:38:52

+0

@alockrem增加了我想要解析這個對象的方法 – JRaymond 2012-04-22 15:45:58

+0

我確定我有一個角色離開了某個地方。當我粘貼你的代碼時,它工作正常。除了字符串名稱之外,我認爲我的原始代碼幾乎完全相同,併產生錯誤。再次感謝你。 – alockrem 2012-04-22 15:54:08

0

使用JSONLint縮進您的JSON字符串,這樣你就可以瞭解結構更好 它是一個帶有一個對象的JSONArray,其中有4個對象,其中一個有4個屬性。

+0

這是一個很好的資源。謝謝。我通過調用getInt(「Id」)而不是getJSONObject(「Id」)來獲得「Id」的值。我應該打電話來允許訪問「主題」? – alockrem 2012-04-22 15:37:18