【发布时间】:2019-02-02 20:15:43
【问题描述】:
当我使用 Alamofire 调用 API 并从服务器获取响应时,我想使用来自 json 的“数据”对象
此数据来自 API
{
"code": 200,
"hasError": false,
"data": [
{
"userSession": "43a1bd70-26bf-11e9-9ccd-00163eaf6bb4"
}
],
"message": "ok"
}
我想将data 映射到我的AuthModel
这是我的AuthModel:
struct AuthModel: Codable {
let userSession: String
enum CodingKeys: String, CodingKey {
case userSession = "userSession"
}
}
我编写了这行代码,但它不起作用:
if let responseObject = response.result.value as? Dictionary<String,Any> {
if let hasError = responseObject["hasError"] as? Bool {
guard !hasError else { return }
do {
let decoder = JSONDecoder()
let authModel = try decoder.decode(AuthModel.self, from: responseObject["data"])
} catch {
print("Parse Error: ",error)
}
}
}
这不起作用,因为responseObject["data"] 不是 NSData 类型
无法将“[String : Any]”类型的值转换为预期的参数类型“Data”
【问题讨论】:
标签: swift codable jsondecoder