[英]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.