从JSON解码为自定义对象



我正在尝试从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) }

最新更新