Добрый вечер, всем. Пытаюсь разобраться, как распарсить вложенный JSON. Всё время получаю либо nil, либо какую-то другую ошибку.
Использую Alamofire. Приходит вот такой JSON с вложенными данными:
{
"success": true,
"result": {
"previous": [
{
"id": 607,
"doctor_id": 37,
"filial_id": 10,
"user_id": 36,
"date": "2020-08-31",
"time_start": "09:00",
"time_end": "21:00",
"datetime_ts_start": "1598508000",
"datetime_ts_end": "1598551200",
"free": 0,
"created_at": "2020-02-13 16:41:17",
"updated_at": "2020-09-01 12:46:58",
"comment": null,
"feedback": false,
"filial": {
"id": 10,
"ones_id": "bab31a28-2375-11e4-bd23-00224d9f6e55",
"name": "Преображенская",
"address": "asfcsafsdfgsdfgsdfgdsfdsdfsdfssddgh",
"type": "asfcsafsdfgsdfgsdfgdsfdsdfsdfssddgh",
"metro": "asfcsafsdfgsdfgsdfgdsfdsdfsdfssddgh",
"created_at": "2020-02-13 16:41:15",
"updated_at": "2020-09-07 18:37:32",
"image": "1599493052.jpeg"
},
"doctor": {
"id": 37,
"ones_id": "4a1db7a5-0b8d-4fcd-86d8-dd98a6e1475b",
"name": "Иван Иванов Иванович",
"specialty": "врач-терапевт",
"cost": null,
"photo": "1596539470.jpeg",
"created_at": "2020-02-13 16:41:17",
"updated_at": "2020-02-13 16:41:17"
}
}
"error": null
}
Из всего этого ответа на экран мне нужно присвоить разным лейблам следующие поля: result - previous - date result - previous - time_start result - previous - filial - address result - previous - filial - name result - previous - filial - image result - previous - doctor - name result - previous - doctor - specialty result - previous - doctor - photo
Каждая сущность (appointmetns + filial + doctor) должна располагаться в своей ячейке на tableview.
Подскажите, пожалуйста:
- Как правильно декодировать весь JSON и поместить его в массив? Или возможно в разные массивы: appointmetns, doctors, filials. Я планировал этот массив/ массивы передать через completion из сетевого запроса во view controller, чтобы разместить инфу в labels.
- Как работать с картинкой в данном случае?
- Ещё, когда добавляю “enum CodingKey: String, CodingKey” появляется следующая ошибка: Type ‘Appointment’ does not conform to protocol ‘Decodable’. Как можно решить эту проблему?