我正在尝试解析一个 JSON 数组,它可以是
{
"config_data": [
{
"name": "illuminate",
"config_title": "Blink"
},
{
"name": "shoot",
"config_title": "Fire"
}
]
}
Run Code Online (Sandbox Code Playgroud)
或者它可以是以下类型
{
"config_data": [
"illuminate",
"shoot"
]
}
Run Code Online (Sandbox Code Playgroud)
甚至
{
"config_data": [
25,
100
]
}
Run Code Online (Sandbox Code Playgroud)
所以为了使用 JSONDecoder 解析这个,我创建了一个结构如下 -
Struct Model: Codable {
var config_data: [Any]?
enum CodingKeys: String, CodingKey {
case config_data = "config_data"
}
init(from decoder: Decoder) throws {
let values = try decoder.container(keyedBy: CodingKeys.self)
config_data = try values.decode([Any].self, forKey: .config_data)
}
}
Run Code Online (Sandbox Code Playgroud)
但这不起作用,因为Any不确认可解码协议。这可能是什么解决方案。数组可以包含任何类型的数据