2017-09-04 96 views
-1

因此,我收到一些服務器的JSON數據,現在我試圖將它保存爲一個數組,所以我可以用它填充一個tableview,但在這裏遇到麻煩是我的代碼:如何將解析的json數據保存到一個數組與swift 3

class UserInfo : UIViewController{ 
var main = "" 
session.dataTask(with: url) { (data, response, error) in 
     if let response = response { 
      print (response) 
     } 
     if let data = data { 
      let json = (try? JSONSerialization.jsonObject(with: data, options: [])) 
      print(json) 
      guard let array = json as? [Any] else {return} 
      for info in array { 
      guard let infoDict = info as? [String : Any] else{return} 
      //there is a declared var called main 
      //main is the one i want save as an array, currently its a variable. i tried to save it as an array by using as! Array but i get error 
      self.main = infoDict["Title"] as! String 
      print (self.main) 
} 
} 
}.resume() 
} 
+0

因此,您需要發佈收到的json,以便我們知道我們處理的是什麼數據。 – ovidiur

+0

「但我得到錯誤」什麼錯誤? – Larme

+0

你想將這些數據存儲在UserDefaults中? – shahnilay86

回答

1

首先你必須聲明ary以外的請求範圍。然後,您必須將數據存儲在相同的ary中。

var ary: NSMutableArray = NSMutableArray() 

session.dataTask(with: url) { (data, response, error) in 
      if let response = response { 
       print (response) 
      } 
      if let data = data { 
       let json = (try? JSONSerialization.jsonObject(with: data, options: [])) 
       print(json) 
       guard let array = json as? [Any] else {return} 
       for info in array { 
        guard let infoDict = info as? [String : Any] else{return} 
        //there is a declared var called main 
        //main is the one i want save as an array, currently its a variable. i tried to save it as an array by using as! Array but i get error 
        self.main = infoDict["Title"] as! String 
        self.ary.add(self.main) 
        print (self.main) 
       } 
       print("Final array is :::",self.ary) 
      } 
      }.resume() 

試試上面的代碼。希望它能爲你工作。

+0

工作正常,但我只是添加了「自我」這個「打印(」最終陣列是:::「,self.ary)」 –

+0

@ Duck.P是的,對不起,因爲我們要求從服務器獲取數據,這是一個封閉的問題,謝謝 – shahnilay86

+0

FUNC的tableView(_的tableView:UITableView的,cellForRowAt indexPath:IndexPath) - >的UITableViewCell { 讓細胞=的UITableViewCell?(樣式:UITableViewCellStyle.default,reuseIdentifier: 「小區」) cell.textLabel的.text = ARRY //當我這樣做(cell.textlable?.text = arry)我得到錯誤(無法分配//類型'NSMutableArray'的值來鍵入'String?') return(cell) } –

相關問題