DT Dev Tools

Конвертер 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 ніколи не завантажуються.

Як користуватися

  1. Вставте JSONВставте відповідь JSON або завантажте зразок.
  2. Оберіть стильВиберіть struct чи class, CodingKeys і те, чи додавати допоміжні методи.
  3. Скопіюйте в XcodeСкопіюйте код Swift або завантажте файл .swift для вашого проєкту.

Часті запитання

Чи є згенеровані типи Codable?
Так. Кожна структура чи клас відповідає Codable, тож ви можете одразу декодувати їх за допомогою JSONDecoder.
Навіщо потрібні явні CodingKeys?
Вони зіставляють назви властивостей Swift у camelCase з точними ключами JSON. Залишайте їх увімкненими, коли ключі в snake_case або мають назви, що не є коректними ідентифікаторами Swift.
Чи можна згенерувати класи замість структур?
Так. Перемкніть Types на class, якщо потрібна семантика посилань, наприклад для Core Data чи сумісності з Objective-C.
Чи завантажується мій JSON?
Ні. Уся конвертація виконується у вашому браузері; на сервер нічого не надсилається.
Реклама