Получение данных JSON из облака

У меня есть база данных, созданная в Cloudant, и я пытаюсь проанализировать эти данные в своем проекте Swift. Я импортировал библиотеки Cloudant, но не могу анализировать данные.

Вот код, который я использовал до сих пор

var url = "https://username:[email protected]/dashboard.html#/database/db_2/login_details"
var request = NSMutableURLRequest()
request.URL = NSURL(string: url)
request.HTTPMethod = "GET"

NSURLConnection.sendAsynchronousRequest(request, queue: NSOperationQueue(), completionHandler:{ (response:NSURLResponse!, data: NSData!, error: NSError!) -> Void in
    var error: AutoreleasingUnsafeMutablePointer<NSError?> = nil
    let jsonResult: NSDictionary! = NSJSONSerialization.JSONObjectWithData(data, options:NSJSONReadingOptions.MutableContainers, error: error) as? NSDictionary
    if jsonResult != nil {
        if let item = json[0] {
            if let student_name = item["Student_name"] {
                if let pasword = student_name["password"] {
                    println("Login Successfull")
                }
            }
        }
    }
}

Может кто-нибудь сказать мне, где я ошибаюсь?


person dper    schedule 03.03.2015    source источник
comment
попробуйте развернуть ваш URL NSURL(string: url)!   -  person Leo Dabus    schedule 03.03.2015
comment
Что происходит не так? Ошибка? Неправильное поведение? Летающий макаронный монстр съел ваш единственный рогалик, когда вы пытались запустить код? Вам нужно будет предоставить более подробную информацию о том, что я не могу проанализировать данные. значит в вашей ситуации.   -  person Aiken    schedule 03.03.2015
comment
Этот код ничего не делает. Вот что я имею в виду, не анализируя данные.   -  person dper    schedule 03.03.2015


Ответы (1)


Вы должны использовать stringByAddingPercentEscapesUsingEncoding(NSUTF8StringEncoding) для преобразования любых специальных символов, которые могут быть в вашей ссылке. Также NSURL может возвращать nil, поэтому вам нужно использовать if let для обработки этого следующим образом:

if let link = "https://username:[email protected]/dashboard.html#/database/db_2/login_details".stringByAddingPercentEscapesUsingEncoding(NSUTF8StringEncoding) {
    if let checkedUrl = NSURL(string: link) {
        println("valid Url")
        // your code
    } else {
        println("invalid Url")
    }
}
person Leo Dabus    schedule 03.03.2015