Я пытаюсь декодировать вложенный JSON с помощью динамических ключей, но не могу найти решение.вот мой json:
{
"available_channels": {
"1000": {
"creation_date": "1111222",
"category_id": "9"
},
"1001": {
"creation_date": "222333",
"category_id": "10"
}
}
Как видите, «1000» и «1001» являются динамическими.
Модели, которые я использую:
struct StreamsData: Codable{
let availableChannels: AvailableChannels
}
struct AvailableChannels: Codable{
let channels: [String: Channel]
}
struct Channel: Codable{
let creationDate: String
let categoryId: String
}
«StreamsData» - это корневой объект
«AvailableChannels» - это объекты, содержащие объекты всех каналов
Модель канала «Channel»
, декодирующая json:
let decoder = JSONDecoder()
decoder.keyDecodingStrategy = .convertFromSnakeCase
let streams = try decoder.decode(StreamsData.self, from: data)
С этим кодом у меня есть эта ошибка:
CodingKeys (stringValue: "availableChannels", intValue: nil) - debugDescription: "Нет значения, связанного с ключом CodingKeys (stringValue: \" channel \ ", intValue: nil) (\ "channel \"). "
Проблема ясна, поскольку объявлено, что« AvailableChannels »имеет свойство« канал », декодер пытается найти« каналы »"в качестве ключа для объекта, содержащего" creation_date ".
Не могли бы вы помочь мне решить эту проблему, спасибо.