【发布时间】:2021-01-12 05:00:57
【问题描述】:
我的 json 响应中有这样的字段:
"title": [2402, "Dr.", "Prof.", "Prof. Dr.", "HM"]
我想解析它。我有我的模型课:
struct AppDataModel:Decodable {
...
let title = Dictionary<String,Any>()
enum CodingKeys: String,CodingKey{
case title
...
}
...
}
如您所见,我尝试使用Dictionary<String,Any>()。而且我还考虑了 Any -> [Any] 的数组,但我通常会收到这样的错误:
Type 'AppDataModel' does not conform to protocol 'Decodable'
我认为我必须像处理普通的json一样处理它。但是我在 Swift 中没有找到这样的数据类型,只有字典。那么,也许有人知道如何处理这些响应字段?
【问题讨论】:
-
除非您在代码中解码并正确处理不同的类型,否则您无法解码异构数组。
-
@vadian,那么我该如何解决这个问题呢?我考虑过 json 处理,但正如我所见,这是不可能的
-
有多种方法,解决方案取决于您的需求。例如,前导整数是否相关?
-
这个整数是这些字符串的翻译字符串id,所以可以更改。至于我的需要 - 我只需要获取没有整数的字符串数据
-
实现
init(from decoder,将title解码为unkeyedContainer,取出值,删除第一个并将其余的分配给[String]类型