Вы не можете использовать 39 в качестве имени параметра, но вы можете использовать это
let category_39: [Category]
private enum CodingKeys : String, CodingKey {
case category_39 = "39"
}
Но я думаю, что эта структура будет сложной, если новая категория, добавленная со стороны сервера, не имеет предварительно определенного идентификатора категории. Я предлагаю использовать следующую модель
struct Model: Codable {
let main: [Category]
let sub: [String: [Category]]
}
struct Category: Codable {
let id: Int
let name: String
}
, а затем получить подкатегории по идентификатору категории
let subCategories = model.sub[String(id)] // String(id) --> "39"