Конвертер 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.