【发布时间】:2018-09-10 20:09:59
【问题描述】:
我有一个包含其他结构和数组的结构。
public struct Report: Codable {
let s:Student;
let vio:[VIO];
let stuPresence: [StuPresence];
}
我正在尝试新的JSONDecoder() 将 alamofire 响应转换为我的结构。
sessionManager.request( self.url_report+"?d="+date, method: .get, parameters: nil).responseJSON{ response in
if response.response?.statusCode == 200 {
debugPrint(response)
do{
let r = try JSONDecoder().decode(Report.self, from: response.result.value as! Data)
debugPrint(r);
}catch{
self.showMessage(message: self.general_err)
}
}
}
问题是在我的Report 结构中解码后得到的不是字符串,而是数字(从调试模式检查)。我究竟做错了什么?
更新:它也给出了错误
Could not cast value of type '__NSDictionaryI' (0x108011508) to 'NSData' (0x108010090)
【问题讨论】:
-
response.data 而不是 response.result.value
-
在这些更改之后,我最终进入了
catch块 -
问题可能出在模型上,你能在问题中给出一个儿子样本和模型结构吗?
标签: swift alamofire swift4 jsondecoder