Я пытался декодировать JSON из серверной системы.
{
"Inst1": [
{
"symbol": "Inst1",
"id": 357200929,
"ltd": 20191220
},
{
"symbol": " Inst1",
"id": 357200932,
"ltd": 20191220
},
{…}
],
"Inst2": [
{
"symbol": "Inst2",
"id": 357201388,
"ltd": 20191220
},
{
"symbol": "Inst2",
"id": 371886725,
"ltd": 20200320
}
]
}
Имя, а также количество узлов верхнего уровня (Inst1, Inst2) являются переменными и неизвестны. Я считаю, что правильное имя для таких узлов - «Ключи динамического кодирования», и поэтому enum не может использоваться.
Подузлы находятся в массиве и всегда имеют одинаковую структуру. Их число неизвестно и может быть различным для каждого верхнего узла (например, inst1 может иметь 10 подузлов, но Inst2 может иметь 5).
Я изо всех сил пытаюсь найти правильный способ декодировать / кодировать такой ответ,Любая помощь будет очень высоко ценится. Спасибо
После ответа Sh_Khan я попробовал приведенный ниже код, но он не работает.
var json = """
{
"Inst1": [
{
"symbol": "Inst1",
"id": 357200929,
"ltd": 20191220
},
{
"symbol": " Inst1",
"id": 357200932,
"ltd": 20191220
}
],
"Inst2": [
{
"symbol": "Inst2",
"id": 357201388,
"ltd": 20191220
},
{
"symbol": "Inst2",
"id": 371886725,
"ltd": 20200320
}
]
}
""".data(using: .utf8)!
struct Inst: Codable {
let symbol: String
let id, ltd: Int
}
let result = try? JSONDecoder().decode([String:[Inst]].self,from: json)