2017-03-05 228 views
-2

我有從FBSDKGraphRequest中拉出的以下JSON數據結構。我想提取數據並將其放入數組。我對第一個「數據」鍵有困難。提取JSON數據 -

繼承人我FBSDKGR:

let params = ["fields": "name, picture.type(large)"] 
    let request = FBSDKGraphRequest(graphPath: "me/taggable_friends", parameters: params) 
    request!.start { (connection, result, error) -> Void in 

     if error != nil { 
      print("There is some error getting friends", error!) 
     } 
     else if result != nil { 
      print("Here is the result", result!) 
+0

本質上我想將這些數據轉換成UITableView –

+5

你在SO上搜索過嗎?有數百個相關的問題來解析JSON。閱讀JSON! '[]'是數組(通過索引進行下標)'{}'是字典(通過鍵被下標)。然而,列表是Swift集合類型的控制檯輸出。有'()'是數組,'{}'是詞典。 – vadian

回答

1

With an extra dependency, if you don't mind.

import SwiftyJSON 

let json = JSON(result) // after you get result from FBSDKGR 
let data = json["data"].array 
for (index, _) in data.enumerated() { 
    if let id = json["data", index, "id"].int { 
      // add to your array 
      if let name = json["data", index, "name"].string { 
       // continue nesting... 
     } 
    } 
} 
0

正如你JSOND DTA是字典的數組所以,我們可以通過下面的方式把結果。首先,我們將採取兩個陣列,一個是名單,另一個是圖片細節。這裏的圖片細節數組是字典數組。讓我們去代碼

var namesArray = [String]() 
var ImageDetailsArrayDict= [[String :AnyObject]]() 

let params = ["fields": "name, picture.type(large)"] 
    let request = FBSDKGraphRequest(graphPath: "me/taggable_friends", parameters: params) 
    request!.start { (connection, result, error) -> Void in 

     if error != nil { 
      print("There is some error getting friends", error!) 
     } 
     else if result != nil { 
      print("Here is the result", result!) 
     if let response = result["data"] as? [[String :AnyObject]] { 

       for i in 0..<response.count { 
        namesArray.append(response[i]["name"] as! String)     
        ImageDetailsArrayDict.append(response[i]["picture"]) 

       } 
       } 
      } 
     } 

現在,我們有兩個數組。所以我們可以很容易地將它填充到tableView中。 祝你好運。

+0

仍然有一個錯誤類型任何沒有下標成員: 如果讓響應=結果[「數據」]爲? [[String:AnyObject]] { –

+0

它在我身邊工作,plz調試和運行 – Harish