【发布时间】:2021-05-13 02:52:17
【问题描述】:
这个对我没有帮助:Swift 4 parsing json numeric keys with 1+n amount
情况不同。
我有这个 JSON(简化了一点):
{
"1": {
"name": "Tea room",
"description": "A room for tea"
},
"2": {
"name": "Playground",
"description": "Here you can play all day long"
},
"3": {
"name": "Kitchen",
"description": "Hungry persons can go here"
}
}
我的问题是如何解码。我正在使用 Swift 版本 5。我正在尝试使用 JSONDecoder().decode();
键“1”、“2”和“3”实际上是 Id,由 API 生成。我不知道我会收到多少个房间。而且我不知道他们会有什么钥匙,但我需要知道钥匙(Id)才能走得更远。
我正在做这样的事情:
struct Rooms: Decodable {
let id: Int; //THIS ONE IS MY PROBLEM
let rooms: [Room]?;
}
struct Room: Decodable {
let name: String?;
let description: String?;
private enum CodingKeys: String, CodingKey {
case name, description;
}
}
//Here trying to decode the JSON I got back.
JSONDecoder().decode([Group].self, from: jsonResult);
这让我头疼:)
谁能帮助我正确的方向?
【问题讨论】:
-
您需要使用自定义解码。如果您有可变键,则不能依赖自动解码。