我有一个结构,其中包含[String: Any]?
类型的可选元数据字段。我想将JSON解析为该结构,并明确不映射字典,但保持原样。
struct MyObject: Decodable {
let id: String
let whatever: String
let metaData: [String: Any]?
enum CardKeys: String, CodingKey {
case id
case whatever
case metaData
}
init(from decoder: Decoder) throws {
let container = try decoder.container(keyedBy: CardKeys.self)
id = try container.decode(String.self, forKey: .id)
whatever = try container.decode(String.self, forKey: .whatever)
metaData = try container.decodeIfPresent([String: Any].self, forKey: .metaData)
}
}
该代码编译并启动但在运行时失败。我想[String: Any]
不是我在这里可以使用的有效类型。但那我该怎么做呢?
答案 0 :(得分:0)
我创建了一个解码/编码字典的框架。
安装框架并替换
let metaData: [String: Any]?
与
let metaData: CodableDictionary?