问题从网站检索JSON数据

时间:2015-02-27 00:04:25

标签: ios json swift

我正在尝试将JSON数据打印到屏幕上,但每当我运行应用程序时,程序都会崩溃。我搜索了堆栈溢出但找不到我的问题。

    var url = NSURL(string: "https://alpha-api.app.net/stream/0/posts/stream/global")!
    var requestURL = NSURLRequest(URL: url)

    NSURLConnection.sendAsynchronousRequest(requestURL, queue: NSOperationQueue(), completionHandler:{ (response: NSURLResponse!, data: NSData!, error: NSError!) -> Void in
        var json = NSJSONSerialization.JSONObjectWithData(data, options: NSJSONReadingOptions.MutableContainers, error: nil) as [NSMutableDictionary]
        println(json)
        println("Got data from \(requestURL.URL)")
    })

2 个答案:

答案 0 :(得分:0)

我个人会做的一些事情,看看这些是否会让它更好用:

var request = NSMutableURLRequest(URL: passedURL)
    NSURLConnection.sendAsynchronousRequest(request, queue: NSOperationQueue.mainQueue()) {
        (response, data, error) in

        println(response)
        println(data)
        println(error)
        if error == nil {
            if let HTTPResponse = response as? NSHTTPURLResponse {
                let statusCode = HTTPResponse.statusCode
                if statusCode == 200 {
                    println("success")
                }
            }
        }
    }

如果不起作用,请执行以下步骤:

首先,检查链接是否有效。如果是这样,我只是在做任何事情之前尝试打印错误,数据和对日志的响应。如果清楚,请尝试打印数据而不将其转换为JSON,看看它是否有效。

答案 1 :(得分:0)

使用Alamofire代替NSURLRequesthttps://github.com/Alamofire/Alamofire

Alamofire.request(.GET, "https://alpha-api.app.net/stream/0/posts/stream/global").responseJSON { (request, response, json, error) in
            if json != nil {
                println(json)
            }
        }

参考:http://blog.revivalx.com/2015/02/23/uitableview-tutorial-in-swift-using-alamofire-haneke-and-swiftyjson/