2012-03-14 65 views
2

我有幾個問題讓Facebook數據正確解析。如何解析Facebook數據

我正在實施部分應用程序,以允許用戶在應用程序中選擇和使用他們自己的Facebook照片之一。我已經獲得了Facebook登錄/註銷代碼,並且我正在獲取令牌(一旦登錄)以便收集用戶專輯信息。權限集也很好地工作,但我現在堅持試圖讓JSON信息正確解析。這裏是信息的示例代碼段我需要解析:

"data": [ 
    { 
    "id": "3486732467234", 
    "from": { 
     "name": "Persons Name", 
     "id": "Persons ID" 
    }, 
    "name": "Vacation", 
    "location": "City", 
    "link": "https://www.facebook.com/album.php?fbid=434235&id=324343&aid=2430", 
    "cover_photo": "3489234432", 
    "privacy": "everyone", 
    "count": 60, 
    "type": "normal", 
    "created_time": "2007-06-03T23:01:16+0000", 
    "updated_time": "2011-03-18T19:46:43+0000", 
    "can_upload": true 
    }, 
    { 
    "id": "4043544665", 
    "from": { 
     "name": "Persons Name", 
     "id": "Persons ID" 
    }, 
    "name": "Vacation 2", 
    "location": "City", 
    "link": "https://www.facebook.com/album.php?fbid=4043434665&id=508154335&aid=2555", 
    "cover_photo": "5434543", 
    "privacy": "everyone", 
    "count": 60, 
    "type": "normal", 
    "created_time": "2007-06-03T22:53:03+0000", 
    "updated_time": "2011-03-18T19:45:55+0000", 
    "can_upload": true 
    }], 
...more paging JSON information ...}} 

我需要能夠拉專輯信息,以便在列表中顯示的相冊名稱(而在另一個查詢中使用的ID) 。一旦我可以將相冊展示出來,我就會使用這些ID來執行另一個查詢來獲取該相冊中的照片。我也可以再次獲取這些信息,但我不確定如何正確解析它。

任何有用的提示,有人可以有能力解析成列表視圖將不勝感激。

我需要針對拉出第一ID和專輯名稱(「ID」:「3486732467234」和「名」:從最早上市的「假期」)

回答

5

你爲什麼不使用JSON嘗試班...

是這樣的:

 jsonObject = new JSONObject(your_data); 
     jArray = jsonObject.getJSONArray("data"); 

     for(int i =0;i<jArray.length();i++){ 

      String name= jArray.getJSONObject(i).getString("name"); 
      String location= jArray.getJSONObject(i).getString("location"); 

+0

這就是我最初是如何試圖做到這一點,但它似乎在這樣的事實,它的包裹嚇壞了在「數據」內 - 我認爲那是我需要找到問題根源的地方。如果我可以讓JSON在數據數組中搜索 - 理論上應該很容易得到結果。 – 2012-03-14 19:05:10

+0

heh ...更正我剛剛注意到添加數據的整個更改...我會試試看看它是否會生效。它看起來與我已經嘗試的代碼驚人地相似。 – 2012-03-14 22:11:17

+0

如果您想從響應中獲取JSON對象並將其傳遞給您的活動:JSONObject userJSON = response.getGraphObject()。getInnerJSONObject(); – 2013-07-25 21:39:08

4

新的Android的Facebook SDK 3.0的回報在Response.Callback(一個Response對象)監聽器製作時圖形API調用。這個響應對象可用於創建GraphObject可用於獲得JSON ...例如:

Request graphRequest = Request.newGraphPathRequest(session, graphRequestString, new Request.Callback() { 

     @Override 
     public void onCompleted(Response response) { 
      //Create the GraphObject from the response 
      GraphObject responseGraphObject = response.getGraphObject(); 

      //Create the JSON object 
      JSONObject json = responseGraphObject.getInnerJSONObject(); 

     } 
});