SwiftyJSON API请求返回Null

时间:2015-08-12 22:38:46

标签: swift swifty-json

我有一些应该从Wunderground API获取数据的函数,并从中返回一个值。我的课程如下:

import UIKit
import Foundation
typealias ServiceResponse = (JSON, NSError?) -> Void

class APITest: NSObject {
static let sharedInstance = APITest()

let baseURL = "http://api.wunderground.com/api/91e65f0fbb35f122/history_20150811/q/OR/Portland.json"

func getRandomUser(onCompletion: (JSON) -> Void) {
    let route = baseURL
    makeHTTPGetRequest(route, onCompletion: { json, err in
        onCompletion(json as JSON)
    })
}

func makeHTTPGetRequest(path: String, onCompletion: ServiceResponse) {
    let request = NSMutableURLRequest(URL: NSURL(string: path)!)

    let session = NSURLSession.sharedSession()

    let task = session.dataTaskWithRequest(request, completionHandler: {data, response, error -> Void in
        let json:JSON = JSON(data: data)
        onCompletion(json, error)
    })
    task.resume()
}

func addData() {
    APITest.sharedInstance.getRandomUser { json in
        let historyData = json["response"]["history"]["date"]["pretty"]
        dispatch_async(dispatch_get_main_queue(),{
            println("Value:\(historyData)")
        })
    }
}

但是,每次运行代码时,它都会返回一个空值。 API在我的代码中;根据需要参考。我的代码在哪里出错,我该如何解决?

1 个答案:

答案 0 :(得分:1)

在我从这个API获得的JSON中,history字典不在response字典内,而是在同一根级别。

所以你的代码应该是这样的:

let historyData = json["history"]["date"]["pretty"]