[英]Cannot convert value of type '[String : Any]' to expected argument type 'String'
[英]Codables error with Alamofire “Cannot convert value of type '[String : Any]' to expected argument type 'Data'”
我通过使用 Alamofire 从 API 收到了响应,该响应采用 [String:Any] 的形式,我正在尝试将该响应转换为可编码格式,它显示错误“无法将类型 '[String: Any]' 的值转换为预期的参数类型“数据”。
请找到我的以下代码并帮助我。
func apiHandling(){
Alamofire.request(catrgeryurl, method: .get, parameters: nil, headers: nil).responseJSON { (response) in
if response.result.value != nil{
if let data = response.result.value as? [String:Any]{
if let myStruct = try? JSONDecoder().decode(Mainsite.self, from: data) {
//do something with myStruct
print(myStruct)
} else {
//handle myStruct being nil
}
}
}
}
}
JSONDecoder
需要Data
而不是字典。 这就是错误告诉你的。
将responseJSON
替换为responseData
,这是处理响应的推荐语法。
func apiHandling(){
Alamofire.request(catrgeryurl).responseData { response in
switch response.result {
case .success(let data):
do {
let myStruct = try JSONDecoder().decode(Mainsite.self, from: data)
} catch { print(error) }
case .failure(let error): print(error)
}
}
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.