使用 Alamofire + Swifty 获取 JSON 数组JSON
Getting JSON array with Alamofire + SwiftyJSON
我真的是 Swift 的新手,抱歉,如果这是一个愚蠢的问题...似乎有很多关于这个的问题,但是 none 其中使用的是最新版本的 Alamofire
Alamofire.request(.GET, url)
.responseJSON { response in
let json = JSON(response.data!)
debugPrint(json)
self.delegate?.didReceiveAPIResults(json)
}
以及委托的didReceiveAPIResults
方法
func didReceiveAPIResults(results: JSON) {
dispatch_async(dispatch_get_main_queue(), {
self.tableData = results["items"].arrayObject!
self.appsTableView!.reloadData()
})
}
这是 JSON 回复:
{
"items": [
{
"id": 1,
"name": "Sample 1"
},
{
"id": 2,
"name": "Sample 2"
}
]
}
我希望 debugPrint 打印类似于 JSON 的内容,但它只打印 unknown
如果我自己调试打印 response.data
,它似乎被编码了...
Optional(<7b226461 7461223a 5b7b2269 64223a36 2c226e61 6d6522......
然后我的 results["items"].arrayObject!
行有这个错误:
fatal error: unexpectedly found nil while unwrapping an Optional value
与其抢 response.data
,我建议抢 response.result.value
。当您执行 responseJSON
时,Alamofire 会为您执行 JSON 解析,您应该可以随意获取这个已解析的对象。
Alamofire.request(.GET, url)
.responseJSON { response in
if let value = response.result.value {
let json = JSON(value)
self.delegate?.didReceiveAPIResults(json)
}
}
我真的是 Swift 的新手,抱歉,如果这是一个愚蠢的问题...似乎有很多关于这个的问题,但是 none 其中使用的是最新版本的 Alamofire
Alamofire.request(.GET, url)
.responseJSON { response in
let json = JSON(response.data!)
debugPrint(json)
self.delegate?.didReceiveAPIResults(json)
}
以及委托的didReceiveAPIResults
方法
func didReceiveAPIResults(results: JSON) {
dispatch_async(dispatch_get_main_queue(), {
self.tableData = results["items"].arrayObject!
self.appsTableView!.reloadData()
})
}
这是 JSON 回复:
{
"items": [
{
"id": 1,
"name": "Sample 1"
},
{
"id": 2,
"name": "Sample 2"
}
]
}
我希望 debugPrint 打印类似于 JSON 的内容,但它只打印 unknown
如果我自己调试打印 response.data
,它似乎被编码了...
Optional(<7b226461 7461223a 5b7b2269 64223a36 2c226e61 6d6522......
然后我的 results["items"].arrayObject!
行有这个错误:
fatal error: unexpectedly found nil while unwrapping an Optional value
与其抢 response.data
,我建议抢 response.result.value
。当您执行 responseJSON
时,Alamofire 会为您执行 JSON 解析,您应该可以随意获取这个已解析的对象。
Alamofire.request(.GET, url)
.responseJSON { response in
if let value = response.result.value {
let json = JSON(value)
self.delegate?.didReceiveAPIResults(json)
}
}