Как мне сделать структуру, чтобы получить эти JSON данные в SwiftUI? - PullRequest
1 голос
/ 27 марта 2020

Я делаю HTTP-запрос GET и хочу сохранить ответ JSON, который выглядит следующим образом:

{
    "code": 200,
    "status": "success",
    "patients": [
        {
            "_id": "5e77c7bbc7cbd30024f3eadb",
            "name": "Bogdan Patient",
            "username": "bogdanp",
            "phone": "0732958473"
        },
        {
            "_id": "5e77c982a2736a0024e895fa",
            "name": "Robert Patient",
            "username": "robertp",
            "phone": "0739284756"
        }
    ]
}

И вот моя структура:

struct Doctor: Codable, Identifiable {
  let id = UUID()
  let patients: [Patients]
}

struct Patients: Codable {
  let id: String
  let name: String
  let phone: String
}

1 Ответ

1 голос
/ 27 марта 2020

Согласно вашей модели, id ожидается в JSON, тогда как имя ключа в JSON равно _id.
. Вы можете использовать CodingKeys, чтобы исправить это:

struct Patients: Codable {
    let id: String
    let name: String
    let phone: String

    enum CodingKeys: String, CodingKey {
        case id = "_id"
        case name
        case phone
    }
}

CodingKeys создает карту между именами ключей в вашей модели и именами ключей в ответе JSON.
Существуют и другие причины для использования CodingKeys, но для текущих целей этого достаточно.

Подробнее: Кодируется в Swift

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...