[英]Swift decode JSON with unknown keys
我的应用程序包中有一个 JSON 文件,看起来像这样
{
"1": "cat",
"2": "dog",
"3": "elephant"
}
我想要的是能够找到例如“2”键的值(“狗”)。
我正在使用这个扩展来解码 json 文件:
let config = Bundle.main.decode(Config.self, from: "config.json")
我定义了这个结构:
struct Config: Codable {
let id: String
let animal: String
}
但是如何找到“2”键的动物名称?
您似乎正在尝试解码您的 JSON ,就好像它是您的Config
结构的数组一样-看起来像这样:
[
{
"id": "1",
"animal": "cat"
},
{
"id": "2",
"animal": "dog"
},
{
"id": "3",
"animal": "elephant"
}
]
但是您的数据(config.json)不是那个,它只是一个带有字符串值的字符串键的 JSON 字典。
您可以改为将其“解码”为 String: String 字典,例如:
let dict = Bundle.main.decode([String: String].self, from: "config.json")
然后dict["2"]
确实是一个可选字符串,其值为.some("dog")
或者,如果您将config.json Config
的内容更改为上述内容,然后将其解码为:
let config = Bundle.main.decode([Config].self, from: "config.json")
那么 id 为 2 的动物将是,例如
config.first(where: { $0.id == "2" })?.animal
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.