首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >如何在alamofire 2中使用swift 2序列化对字典的json响应

如何在alamofire 2中使用swift 2序列化对字典的json响应
EN

Stack Overflow用户
提问于 2015-09-14 11:28:51
回答 2查看 11.8K关注 0票数 13

这段代码曾经在swift 2之前的alamofire的早期版本中工作,现在它给出了一个警告:cast from Result<AnyObject> to Dictionary<String, AnyObject> always fails

代码语言:javascript
复制
  Alamofire.Manager.sharedInstance.request(.POST, url, parameters:params)
            .responseJSON { (request, response, data) -> Void in

            var result = data as? Dictionary<String,AnyObject> //this gives an error cast from Result<AnyObject> to Dictionary<String, AnyObject> always fails

我怎样才能让字典中的造型正常工作呢?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2015-09-15 11:32:04

您需要调用:

代码语言:javascript
复制
Alamofire.request(.POST, url, parameters:params)
    .responseJSON { request, response, result in
        debugPrint(result)

        if let value = result.value as? [String: AnyObject] {
           print(value)
        }
    }

您应该通读更新后的README代码示例。

票数 28
EN

Stack Overflow用户

发布于 2018-05-31 19:01:47

我知道现在回答这个问题有点晚了,但我之所以分享这个,是因为我觉得这段代码也许可以帮助一些人:

代码语言:javascript
复制
Alamofire.request(url, method: .post, parameters: param, encoding: JSONEncoding.default, headers: nil).responseJSON
            {
                response in

                SVProgressHUD.dismiss()

                let data = response.result.value

                let responseObject = data as? NSDictionary

                switch (response.result)
            {
                case .success(_):

                print(responseObject!["message"] as! NSString as String)
                break

                case .failure(_):
                   SVProgressHUD.showError(withStatus: (responseObject!["message"] as! NSString as String))
                print(responseObject!["message"] as! NSString as String)
                break
            }
        }

谢谢你,祝你愉快!编码愉快!:)

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/32556893

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档