我通过使用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
}
}
}
}
}
答案 0 :(得分:1)
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)
}
}
}