ios swift http json

//
//  ViewController.swift
//  http_request
//
//  Created by andy on 14-9-6.
//  Copyright (c) 2014年 andy. All rights reserved.
//

import UIKit

class ViewController: UIViewController {
    @IBOutlet var btn:UIButton?
    @IBOutlet var lable:UILabel?
    
    override func viewDidLoad() {
        super.viewDidLoad()
        //TextField
    }

    @IBAction func btnClick(AnyObject) {
       // ss()
      loadJsonData()
    }
    
    //解析JSON的方法
    func loadJsonData(){
        //定义获取json数据的接口地址,这里定义的是获取天气的API接口,还有一个好处,就是swift语句可以不用强制在每条语句结束的时候用";"
        var url = NSURL(string:"http://www.weather.com.cn/data/sk/101110101.html")
        //获取JSON数据
        var data = NSData.dataWithContentsOfURL(url,options:NSDataReadingOptions.DataReadingUncached,error:nil)
        var json:AnyObject = NSJSONSerialization.JSONObjectWithData(data,options:NSJSONReadingOptions.AllowFragments,error:nil)!
        
        //解析获取JSON字段值
        var weatherInfo:AnyObject = json.objectForKey("weatherinfo")! //json结构字段名。
        var city:AnyObject = weatherInfo.objectForKey("city")!
        //以此类推获取其他字段的信息,再此我就不过多赘述了。
        
        //然后把获取到的json值赋值个相应的控件即可。
        //tv.text = "城市:\(city)" //使用\()可以将变量嵌入到相应的字符串中,
        println(city)
    }
    
    
    func ss() {
        let urlPath: String = "http://www.weather.com.cn/data/sk/101010100.html"
        var url: NSURL = NSURL(string: urlPath)
        var request1: NSURLRequest = NSURLRequest(URL: url)
        let queue:NSOperationQueue = NSOperationQueue()
        
        
        NSURLConnection.sendAsynchronousRequest(request1, queue: queue, completionHandler:{ (response: NSURLResponse!, data: NSData!, error: NSError!) -> Void in
            /* Your code */
            
            var err: NSError
            
            var jsonResult: NSDictionary = NSJSONSerialization.JSONObjectWithData(data, options: NSJSONReadingOptions.MutableContainers, error: nil) as NSDictionary
           
            println("AsSynchronous\(jsonResult)")
        })
    }
    
    override func didReceiveMemoryWarning() {
        super.didReceiveMemoryWarning()
        // Dispose of any resources that can be recreated.
    }
}

 

郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。