Edg*_*gel 31 json ios swift alamofire swift2
我有一个关于新版Alamofire for Swift 2的问题
Alamofire.request(.POST, urlString, parameters: parameters as? [String : AnyObject])
.responseJSON { (request, response, result) -> Void in
let dico = result as? NSDictionary
for (index, value) in dico! {
print("index : \(index) value : \(value)")
}
}
Run Code Online (Sandbox Code Playgroud)
在本节中,我想将结果转换为NSDictionary.但是当我编译并设置断点时,调试器说dico是零.如果我使用debugDescription打印结果,它不是nil并包含我所期望的如何转换Result变量?
Jav*_*diz 56
接受的答案很有效,但随着Alamofire 3.0.0的推出,有一些重大变化会影响这种实现.
该迁移指南有进一步的解释,但我会强调与实际的解决方案的人.
同时记录Alamofire处理任何已完成的请求是否成功,无论响应的内容如何.所以,你需要链.validate()之前.responseJSON()打的.Failure情况.在这里阅读更多相关信息.
更新的代码:
let url = "http://api.myawesomeapp.com"
Alamofire.request(.GET, url).validate().responseJSON { response in
switch response.result {
case .Success(let data):
let json = JSON(data)
let name = json["name"].stringValue
print(name)
case .Failure(let error):
print("Request failed with error: \(error)")
}
}
Run Code Online (Sandbox Code Playgroud)
以供参考:
che*_*mic 38
如果您不介意使用SwiftyJSON库,这里是Xcode 7 Beta 5 + Alamofire 2.0.0-beta.1 + SwiftyJSON(xcode7分支)中的一个工作示例
Alamofire.request(.GET, url, parameters: params, encoding: ParameterEncoding.URL).responseJSON { (_, _, result) in
switch result {
case .Success(let data):
let json = JSON(data)
let name = json["name"].string
case .Failure(_, let error):
print("Request failed with error: \(error)")
}
}
Run Code Online (Sandbox Code Playgroud)
编辑:
更新了SwiftyJSON git页面
| 归档时间: |
|
| 查看次数: |
48557 次 |
| 最近记录: |