ios - 如何快速解码具有动态键值的json?
问题描述
我在快速正确构建我的 Codable 模型时遇到了一些麻烦。我有一个 json,它可以具有动态 id 键值和一个我知道的键值始终相同。如何处理动态 id 值?从我的研究来看,我似乎需要一个自定义解码器初始化,但我不相信我做的 100% 正确。谢谢你。
示例 json:
{
"1f73433230": "Clark Kent",
"f1c3432fd6": "Batman",
"3d34457d69": "Wonder Woman",
"OTHER_ID": "Other"
}
代码
struct SuperHeroIds: Codable, Equatable {
let id: String
let otherId: String
enum CodingKeys: String, CodingKey {
case otherID = "OTHER_ID"
}
init(from decoder: Decoder) throws {
let container = try decoder.container(keyedBy: CodingKeys.self)
otherId = try container.decode(String.self, forKey: .otherID)
id = String()
???
}
}
解决方案
我会选择
let res = try JSONDecoder().decode([String:String].self, from:data)
推荐阅读
- html - 如何使用 CSS 水平平均分布图像,使图像变大/缩小
- laravel - 无法使用 ParsedownServiceProvider 定位可发布资源错误
- html - 如何在html中创建一个有2行堆叠在它旁边的行?
- linux - Shell/Bash - 想要将文件数组映射到一组数字
- bash - gcp cli 错误 =(gcloud.logging.write) 无法识别的参数
- c# - 时间:2019-05-10 标签:c#wcf web-service client https connection never close
- blazor - Blazor wasm - 调试 - 无法查看任何变量的值
- html - 使用 Jinja 处理 Flask 中的按钮可见性
- python - Python Telebot 无法限制聊天成员
- typescript - 使用字符串文字通过 Typescript 获取对象属性