2017-09-04 7 views
-1

サーバーからいくつかのjsonデータを受け取ったので、配列として保存しようとしています。そのため、テーブルビューにデータを格納できますが、ここで問題が発生しています私のコード:パースされた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

はうまく機能しましたが、この "print"(最終配列は::: "self.ary)"に "self"を追加しました。 " –

+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)return(cell) } –

関連する問題