我已经创建了这个登录功能来获取用户 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/