2013-02-22 82 views
1

我是JSON的新手。我正在與json processing library。給定一個JSON如:如何從FB圖API解析來自JSON數組的數據?

{ 
    "data": [ 
     { 
     "name": "John Doe", 
     "id": "2980311" 
     }, 
     { 
     "name": "Jane Doe", 
     "id": "10221412" 
     }, 
     { 
     "name": "George Doe", 
     "id": "111623489" 
     } 
    ], 
    "paging": { 
     "blah" : "blah" 
    } 
} 

如何獲取id值。我已經試圖讓一個陣列工作開始:

String URL = "https://graph.facebook.com/username/friends?access_token="; 
String token = ""; 
String[] response = loadStrings(URL+token); 

if(response != null) { 
    JSONObject result = new JSONObject(response); 
    JSONArray data = result.getJSONArray("data"); 
} 

而這種打印出:

JSONObject["data"] not found. 
JSONObject["data"] is not a JSONArray. 

但它肯定獲取數據。如果我打印出response,我會看到數據。

我錯過了什麼?

回答

2

,我沒有看到在接受String[](您response變量的類型)庫JSONObject構造。有JSONObject(String)JSONObject(Object)。如果你通過String[]JSONObject,它會匹配後者,它不會(立即)看起來像它會做你想做的。

我懷疑你想從URL中得到一個String,然後你會傳入JSONObject(String),此時事情應該開始正常工作。

+0

確實,那是做到了。謝謝! – mix 2013-02-22 01:31:08

+1

@mix:非常好!這是在黑暗中的一點點,因爲我沒有使用過圖書館,很高興幫助! – 2013-02-22 01:32:01

0

嘗試與此..

GraphObject responseGraphObject = response.getGraphObject();
JSONObject json = responseGraphObject.getInnerJSONObject();

     JSONObject sys = json.getJSONObject("data"); 
      Log.e("urlimage json", sys.getString("url"));