SwiftyJSON API 请求 Returns 空
SwiftyJSON API Request Returns Null
我有一些函数应该从 Wunderground API 获取数据,return 从中获取一个值。我的class如下:
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)")
})
}
}
但是,每次我 运行 代码时,它 return 都是空值。 API 在我的代码中;根据需要参考它。我的代码哪里出错了,我该如何解决?
在我从这个API得到的JSON中,history
字典不在response
字典中,但在相同的根级别。
所以你的代码应该是这样的:
let historyData = json["history"]["date"]["pretty"]
我有一些函数应该从 Wunderground API 获取数据,return 从中获取一个值。我的class如下:
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)")
})
}
}
但是,每次我 运行 代码时,它 return 都是空值。 API 在我的代码中;根据需要参考它。我的代码哪里出错了,我该如何解决?
在我从这个API得到的JSON中,history
字典不在response
字典中,但在相同的根级别。
所以你的代码应该是这样的:
let historyData = json["history"]["date"]["pretty"]