Главная страница
Навигация по странице:

  • Создайте свою модель Давайте начнем с создания нашей модели в нашем приложении. В качестве примера мы будем использовать модель Animal

  • Создайте файл JSON с данными

  • Примечание.

  • Создайте свои данные модели

  • Object, array, string


    Скачать 20.1 Kb.
    НазваниеObject, array, string
    Дата16.05.2023
    Размер20.1 Kb.
    Формат файлаdocx
    Имя файлаjson.docx
    ТипДокументы
    #1135261

    Что такое JSON?

    JSON , также известный как нотация объектов JavaScript, представляет собой облегченный формат данных. Он работает в парах ключ-значение и принимает только определенные типы значений: object , array , string , number , boolean , null . Вот простой пример того, как выглядит JSON:

    {

    "name": "John",

    "age": 30,

    "car": null

    }

    Создайте свою модель

    Давайте начнем с создания нашей модели в нашем приложении. В качестве примера мы будем использовать модель Animal . Каждое животное будет иметь идентификатор, имя, возраст и тип.

    // Animal.swift

    struct Animal: Identifiable, Decodable {

    var id: Int

    var name: String

    var age: Int

    var type: String

    }

    Создайте файл JSON с данными

    Затем создайте файл JSON в соответствии с только что созданной моделью. Поскольку мы хотим отображать в нашем приложении несколько животных, наш JSON будет массивом Animals .

    // animalData.json

    [

    {

    "id": 1001,

    "name": "Toto",

    "age": 3,

    "type": "Dog"

    },

    {

    "id": 1002,

    "name": "Betsy",

    "age": 7,

    "type": "Cat"

    },

    {

    "id": 1003,

    "name": "Olive",

    "age": 36,

    "type": "Tortoise"

    },

    {

    "id": 1004,

    "name": "Jupiter",

    "age": 10,

    "type": "Parrot"

    },

    {

    "id": 1005,

    "name": "Ulysse",

    "age": 17,

    "type": "Monkey"

    }

    ]

    Примечание. Не забудьте проверить данные JSON, так как вы можете получить ошибки при декодировании данных. Вы можете использовать JSONLint , чтобы проверить, действителен ли ваш JSON.

    Создайте свои данные модели

    Далее давайте создадим ModelData , куда мы будем загружать и анализировать данные JSON в нашем приложении.

    // ModelData.swift

    var animals: [Animal] = load("animalData.json")

    func load<T: Decodable>(_ filename: String) -> T {

    let data: Data

    guard let file = Bundle.main.url(forResource: filename, withExtension: nil)

    else {

    fatalError("Couldn't find \(filename) in main bundle.")

    }

    do {

    data = try Data(contentsOf: file)

    } catch {

    fatalError("Couldn't load \(filename) from main bundle:\n\(error)")

    }

    do {

    let decoder = JSONDecoder()

    return try decoder.decode(T.self, from: data)

    } catch {

    fatalError("Couldn't parse \(filename) as \(T.self):\n\(error)")

    }

    }

    Приведенная выше функция load() берет файл из пути к файлу, который вы передали в качестве аргумента, и декодирует данные JSON в формат, который может прочитать Swift. Если есть ошибка, она будет напечатана в консоли.

    После того, как функция загрузки будет завершена, ваши данные будут доступны и готовы к использованию, просто вызвав переменную animals . Важно указать тип данных, которые вы хотите сохранить, в переменной animals , так как функция load() должна знать, какой тип данных она должна выводить.

    Используйте свои данные в своем представлении

    Вам просто нужно вызвать переменную животных и выполнить итерацию по каждому животному, чтобы отобразить их в своем представлении.

    var body: some View {

    VStack {

    ForEach(animals) { animal in

    Text("\(animal.name) is a \(animal.type) and is \(animal.age) years old.")

    }

    }

    }


    написать администратору сайта