加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

使用Swift从AFNetworking访问JSON数据

发布时间:2020-12-14 04:34:44 所属栏目:百科 来源:网络整理
导读:我通过代码中的链接访问了Yahoo Finance数据集.它在调试窗口中执行并打印 JSON数据.如何在myNameLabel中存储然后打印选定的字段.例如“symbol”或“LastTradePriceOnly”字段? class ViewController: UIViewController { @IBOutlet weak var myNameLabel: U
我通过代码中的链接访问了Yahoo Finance数据集.它在调试窗口中执行并打印 JSON数据.如何在myNameLabel中存储然后打印选定的字段.例如“symbol”或“LastTradePriceOnly”字段?

class ViewController: UIViewController {


    @IBOutlet weak var myNameLabel: UILabel!

    override func viewDidLoad() {
        super.viewDidLoad()
        // Do any additional setup after loading the view,typically from a nib.
        let manager = AFHTTPRequestOperationManager()

        manager.GET( "https://query.yahooapis.com/v1/public/yql?q=select%20*%20from%20yahoo.finance.quote%20where%20symbol%20in%20(%22AAPL%22)&format=json&diagnostics=true&env=store%3A%2F%2Fdatatables.org%2Falltableswithkeys&callback=",parameters: nil,success: { (operation: AFHTTPRequestOperation!,responSEObject: AnyObject!) in
                println("JSON: " + responSEObject.description)

                //How to access and print individual fields?

            },failure: { (operation: AFHTTPRequestOperation!,error: NSError!) in
                println("Error: " + error.localizedDescription)
            })
    }

    override func didReceiveMemoryWarning() {
        super.didReceiveMemoryWarning()
        // Dispose of any resources that can be recreated.
    }


}

解决方法

您可以只导航嵌套字典的结构,可能是这样的:

manager.GET( "https://query.yahooapis.com/v1/public/yql?q=select%20*%20from%20yahoo.finance.quote%20where%20symbol%20in%20(%22AAPL%22)&format=json&diagnostics=true&env=store%3A%2F%2Fdatatables.org%2Falltableswithkeys&callback=",success: {
        operation,responSEObject in

        if let quote = responSEObject?.objectForKey("query")?.objectForKey("results")?.objectForKey("quote") as? NSDictionary {

            let symbol = quote.objectForKey("Symbol") as? String
            let lastTradePriceOnly = quote.objectForKey("LastTradePriceOnly") as? String

            println("results: (symbol) @ (lastTradePriceOnly)")
        } else {
            println("no quote")
        }
    },failure: {
        operation,error in

        println("Error: " + error.localizedDescription)
    })

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读