我正在尝试从JSON进行解码(我的HTTP请求使用swiftyJSON和Alamofire(。swiftyJsonVar是我的JSON对象
let decoder = JSONDecoder()**
let user = try! decoder.decode([User.self], for:(swiftyJsonVar))**
当写这篇文章时,我有以下错误
调用中的参数标签不正确(具有">:for:",应为">:from:">
所以当我切换到"from:"时,我会出现以下错误:
无法将"JSON"类型的值转换为预期的参数类型"Data"*">
当我在将请求转换为JSON之前放入从请求中获得的Data值时,它可以正常工作,但当响应为JSONArray时,我就不能再这样做了。谢谢你的帮助。
错误"无法将'JSON'类型的值转换为预期的参数类型'Data'"清楚地说明了问题所在。
"from"参数的数据类型需要为data,因此需要转换swiftyJsonVar。如果swiftJsonVar是SwiftyJSON对象,则类似于let data = try swiftyJsonVar.rawData()
。
请,请(学会(阅读错误消息。这些都非常清楚。
消息的左侧是你做错了什么,之后的部分是你应该做的。
"调用中的参数标签不正确(具有':for:',应为':from:'">
这是什么意思?您编写了, for:
,但正确的语法是, from:
。可能还有一个修复按钮。
"无法将'JSON'类型的值转换为预期的参数类型'Data'">
这是什么意思?您传递了一个JSON
类型,但正确的类型是Data
。
忘记SwiftyJSON,将收到的原始数据传递给解码器,并捕获可能的错误。另一个错误是Type
参数。如果需要一个User
写入User.self
,如果<strong]需要一个>阵列写入[User].self
do {
let decoder = JSONDecoder()
let user = try decoder.decode([User].self, from: data)
} catch { print(error) }