【发布时间】:2019-09-11 18:00:09
【问题描述】:
我是 Codable 的新手,今天一直在玩它。
我当前的 JSON 模型如下所示:
{
"status": 200,
"code": 200,
"message": {
"1dHZga0QV5ctO6yhHUhy": {
"id": "23",
"university_location": "Washington_DC",
"docID": "1dHZga0QV5ctO6yhHUhy"
},
"0dbCMP7TrTEnpRbEleps": {
"id": "22",
"university_location": "Timber Trails, Nevada",
"docID": "0dbCMP7TrTEnpRbEleps"
}
}
}
但是,尝试使用以下命令解码此响应:
struct USA: Codable
{
//String, URL, Bool and Date conform to Codable.
var status: Int
var code: Int
// Message Data
var message: Array<String>
}
给出:
本应解码 Array 但找到了字典。
将message 更新为Dictionary<String,String 会产生:
typeMismatch(Swift.String, Swift.DecodingError.Context(codingPath: [CodingKeys(stringValue: "message", intValue: nil), _JSONKey(stringValue: "1dHZga0QV5ctO6yhHUhy", intValue: nil)], debugDescription: "预期解码字符串,但找到了字典。”,基础错误:无))
【问题讨论】:
-
我建议将您的 JSON 粘贴到 app.quicktype.io 以获得您在 Swift 中需要的结构的非常合理的第一个版本。
-
@Gereon,谢谢。那个网站真的很有用