2012-06-27 38 views
0

我正在製作一個Facebook應用程序,我能夠使用圖形api獲取用戶的朋友列表。朋友列表以JSON的形式返回。如何解析它是使用java?我有json簡單的庫,但我我無法使用它。如何解析用戶使用java的Facebook好友列表?

+0

你可以發佈你的代碼嗎?到目前爲止你嘗試了什麼,以及你面臨的麻煩是什麼? –

+0

http://code.google.com/p/json-simple/wiki/DecodingExamples我嘗試使用示例1中的代碼。但它給出了一個ClassCastException ..它showsorg.json.simple.JSONObject不能轉換爲org .json.simple.JSONArray – arpitsolanki

回答

2

這裏:

String response = ..... 

JSONArray arr = (JSONArray)JSONValue.parse(response); 
JSONObject obj = (JSONObject)JSONValue.parse(response); 

根據您的要求,您應該能夠知道返回的響應是否爲數組或對象。


編輯

在你得到其含有陣列的JSON對象的情況下:

String response = ..... 

JSONObject obj = (JSONObject)JSONValue.parse(response); 

if (obj.containsKey("xxxx")) { 
    JSONArray arr = (JSONArray)obj.get("xxxx"); 
} 

的的JSONObject支持java.util.Map接口和JSONArray支撐的java.util.List接口。

+0

朋友列表很長。我應該繼續迭代循環內。在某些情況下,有對象在物體內,我該如何處理它? – arpitsolanki

+0

你的代碼的第一行拋出一個異常.. org.json.simple.JSONObject不能轉換爲org.json.simple.JSONArray – arpitsolanki

+0

這不是兩條線,它是第一或第二,取決於你問的是什麼從圖表api。如果你要求數組,則使用1st,否則使用2nd。 –

1

編輯:這是爲完整的JSON庫而不是org.json簡單的庫。請看看Nitzan對org.json簡單庫的回答。

您需要從JSONObject得到一個值。例如讓我們說你JSONObject被稱爲jObj:

jObj.getString("parameter_name");

如果給你一個JSONArray,你需要做這個從JSONArray得到正確的JSONObject:

JSONObject jObj = jArray.getJSONObject(0);

用您想檢索的JSONObject替換0替換

+0

我有一個字符串包含JSON,我從圖中獲取api url.How將其轉換爲JSON對象? – arpitsolanki

+0

我相信你可以做'JSONObject jObj = new JSONObject(resultString)'然後從上面的答案中檢索正確的參數。 – KrispyDonuts

+0

JSONObject類沒有這樣的構造函數 – arpitsolanki

相關問題