iOS编程学习二十一(网络和JSON解析)

今天做的是JSON的小例子,调用一个免费的web service,然后对返回的JSON内容解析后显示出来。

涉及到了网络和多线程,之前都学习过了,所以非常简单。

let request = URLRequest(url: loanUrl)
        let task = URLSession.shared.dataTask(with: request, completionHandler: {
            (data, response, error) -> Void in
            if let error = error {
                print(error)
                return }
            // Parse JSON data
            if let data = data {
                self.loans = self.parseJsonData(data: data)
                // Reload table view
                OperationQueue.main.addOperation({
                    self.tableView.reloadData()
                })
            } })
        task.resume()

URLRequest来调用Service,返回数据后,返回到UI的主线程去更新UI。

用JSONSerialization类来解析JSON的内容:

var loans = [Loan]()
        do {
            let jsonResult = try JSONSerialization.jsonObject(with: data, options:
                JSONSerialization.ReadingOptions.mutableContainers) as? NSDictionary
            // Parse JSON data
            let jsonLoans = jsonResult?["loans"] as! [AnyObject]
            for jsonLoan in jsonLoans {
                let loan = Loan()
                loan.name = jsonLoan["name"] as! String
                loan.amount = jsonLoan["loan_amount"] as! Int
                loan.use = jsonLoan["use"] as! String
                let location = jsonLoan["location"] as! [String:AnyObject]
                loan.country = location["country"] as! String
                loans.append(loan)
            }
        } catch {
            print(error)
        }
JSON和XML类似,但是比xml可读性更高,越来越广泛,所以这是一项基本的功能。




 

猜你喜欢

转载自blog.csdn.net/starshus/article/details/77015347