简体   繁体   中英

how to save parsed json data into an array with swift 3

So i received some json data from a server now am trying to save it as an array so i can populate a tableview with it but am having a trouble doing it here is my code :

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()
}

First you have to declare ary outside of the request scope. Then you have to store your data in the same 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()

Try above code. Hope it will work for you.

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM