ios - 如何在不使用库swift的情况下反序列化json响应类型

标签 ios json swift tuples alamofire

我已经创建了这个登录功能来获取用户 anthnication 并允许他登录到应用程序。我有一个问题,如何在没有示例的情况下反序列化 [String : AnyObject] 的元组 let user:String = resp.1 as!字符串

func getUserCredential(username:String,password:String)->UserModel
     {
        var authenticatedUser  = UserModel()
        let user = username
        let password = password

        let credential = NSURLCredential(user: user, password: password, persistence: .ForSession)

        Alamofire.request(.GET, "https://httpbin.org/basic-auth/\(user)/\(password)")
            .authenticate(usingCredential: credential)
            .responseJSON { response in
                print("response \(response)");
                if let validResponse = response.result.value as? [String : AnyObject]
                {
                    for resp  in validResponse
                    {
                        let user:String = resp.1 as! String
                        let isAuthenticated:Bool =  resp.0 as! Bool
                        let isManager:Bool = true
                        authenticatedUser = UserModel(username:user,isAuthenticated:isAuthenticated,isManager:isManager)
                    }
                }
                else if let error = response.result.error
                {
                    print("Error: \(error)")
                }
        }
        return authenticatedUser;
     }

最佳答案

您发布的代码使用的是库 AlamoFire。

Alamofire 内置了 JSON 支持。只需使用它具有的 JSON 函数即可。

如果您想在不使用第三方库的情况下将 JSON 数据转换回对象,请使用 NSJSONSerialization。 “JSONObjectWithData:options:error:”方法将 JSON 数据作为输入并从该数据返回反序列化的对象。

编辑:

你说“......我如何反序列化 [String : AnyObject] 的元组而没有示例让 user:String = resp.1 as!String”。

我不知道这意味着什么。 [String:AnyObject] 是字典,不是元组。

关于ios - 如何在不使用库swift的情况下反序列化json响应类型,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36848205/

相关文章:

java - JSON解析错误: Unexpected character (s) at position 226025

ios - 无法使标识符为 "GroupMessageCell"的单元格出队

ios - 创建类对象时如何处理缺失值?

c++ - 从标准 C++ 代码访问 iPhone 的沙箱文档文件夹

ios - 如何将完整的 uicollectionview 打印到图像或 pdf 中

ios - 处理内存管理和 iOS Cordova 项目?

ios - 计算属性字符串高度

javascript - 如何读取 JSON 格式的对象并将其与用户输入的内容进行比较?

ios - 如何将 TestFlight 与 Swift 1.2 应用程序一起使用?

json - Jackson 在@ManyToMany 关系中序列化问题