2017-01-22 75 views
0

我正在從事一個項目,我從網站獲取的JSON文件沒有任何(鍵)讓我開始解析。所以,當我在代碼中使用該行時,我將從JSON文件中獲取所有信息。我的問題是,我需要進一步解析它,所以我可以填充UITableView,我似乎不能解析它是更具體。用SwiftyJSON解析JSON

這是從我的JSON代碼

let externalURL = "http://jsonplaceholder.typicode.com/users" 

func getJSON(){ 
      let url = URL(string: externalURL) 
      let request = NSURLRequest(url: url! as URL) 
      let session = URLSession(configuration:URLSessionConfiguration.default) 
      let task = session.dataTask(with: request as URLRequest) {(data, response, error) -> Void in 
       if error == nil { 
        let swiftyJSON = JSON(data: data!) 
        let userInfo = swiftyJSON[].arrayValue 
        print(userInfo) 
    } 
       else{ 
        print("There was an error") 
       } 
      } 
      task.resume() 
     } 
+0

'我的問題是,我需要進一步解析它,所以我可以填充一個UITableView,我似乎不能解析它是更具體。「我們沒有足夠的信息來幫助你。什麼是JSON模式。你想如何解析「更具體?」 – JAL

+0

我只想從JSON獲取幾位信息(即姓名,電話和電子郵件)。 '[ { 「ID」:1, 「名」: 「琳恩·格雷厄姆」, 「用戶名」: 「佈雷」, 「電子郵件」: 「[email protected]」, 「地址」:{ 「street」:「Kulas Light」, 「suite」:「Apt.555」, 「city」:「Gwenborough」, 「zipcode」:「92998-3874」, 「geo」:{ 「lat」 :「-37.3159」, 「lng」:「81.1496」 } }]' – Ingelbert

+0

如果查看URL [http://jsonplaceholder.typicode.com/users],則可以查看整個文件。 – Ingelbert

回答

0

甲起點:

let swiftyJSON = JSON(data: data!) 
if let userInfo = swiftyJSON.array { 
    for user in userInfo { 
    print(user["name"].string, user["email"].string, user["phone"].string) 
    if let address = user["address"].dictionary { 
     print(address["city"]?.string) 
    } 
    } 
} 

所有打印的值是自選。

+0

謝謝。那麼如何將這些信息添加到「UITableView,UITableViewCell」? – Ingelbert

+0

這取決於你的數據源模型(字典,自定義結構/類或其他)。 – vadian

+0

上面的代碼將它放到字典中,或者它現在仍然在數組中。字典更容易正確? – Ingelbert