Конвертер JSON в Swift Codable — генератор моделей
Преобразуйте JSON в структуры или классы Swift Codable онлайн с CodingKeys, optional-типами и вложенными типами. Готово для JSONDecoder — бесплатно и приватно.
🔒 Работает полностью в вашем браузере — ничего не загружаетсяМодели Swift Codable из JSON
Протокол Codable в Swift сводит декодирование JSON к одной строке — как только у вас есть типы, точно соответствующие полезной нагрузке. Этот конвертер JSON в Swift генерирует такие типы по образцу. Каждый объект становится struct (или class), соответствующим Codable, ключи становятся свойствами в camelCase, вложенные объекты — собственными типами, массивы — типизированными массивами Swift, а значения, отсутствующие или равные null в части образца, становятся optional. Явные перечисления CodingKeys сопоставляют каждое свойство с исходным ключом JSON, так что API со snake_case декодируются без какой-либо собственной стратегии.
Движок под капотом — quicktype, который объединяет все элементы каждого массива перед выводом типов. Поле, встречающееся лишь в некоторых элементах, всё равно становится optional-свойством, что избавляет от страшной ошибки декодирования keyNotFound во время выполнения.
Структуры, классы и вспомогательные методы
Структуры выбраны по умолчанию, потому что типы-значения идиоматичны для моделей в SwiftUI и большей части современного кода iOS и macOS. Переключитесь на классы, когда нужна семантика ссылок или совместимость с Objective-C. По умолчанию вывод также содержит удобные вспомогательные методы — инициализаторы из данных и строк JSON, методы jsonData() и jsonString() и мутатор with(...) — которые облегчают использование моделей в тестах и превью. Отметьте Types only, если вам по душе минимальный файл только с объявлениями Codable.
Советы перед вставкой в Xcode
Используйте богатый образец с несколькими элементами массива и заполненными необязательными полями. Переименуйте корневой тип из Root во что-то осмысленное, например FeedResponse; скачанный файл получит это имя. После этого подумайте о преобразовании строковых полей с известными значениями в enum, использовании Date с соответствующей dateDecodingStrategy и пометке свойств как var, где нужна мутация. Всё происходит локально в вашем браузере, так что приватные ответы API никогда не загружаются.
Как использовать
- Вставьте JSONВставьте ответ JSON или загрузите образец.
- Выберите стильВыберите struct или class, CodingKeys и то, добавлять ли вспомогательные методы.
- Скопируйте в XcodeСкопируйте код Swift или скачайте файл .swift для вашего проекта.
Часто задаваемые вопросы
Являются ли сгенерированные типы Codable?
Codable, так что вы можете сразу декодировать их с помощью JSONDecoder.Зачем нужны явные CodingKeys?
Можно ли сгенерировать классы вместо структур?
class, если нужна семантика ссылок, например для Core Data или совместимости с Objective-C.