Перейти до вмісту

JSON у структуру Swift Codable

Перетворіть зразок JSON на структуру Swift, яка відповідає Codable.

Введення
Вихід

JSON у структуру Swift Codable

Вставте зразок JSON, і інструмент визначить його структуру та створить структуру Swift, яка відповідає протоколу Codable. Структура готова до використання в iOS, macOS або серверних проектах на Swift. Вкладені об'єкти стають власними структурами, масиви — типізованими Swift масивами, а відсутні або null значення — опціональними властивостями зі знаком питання. Створена модель збігається з тим, що насправді відправляє API, а не базується на одному удалому прикладі.

Параметри визначають форму сгенерованого коду. Виберіть struct або class для оголошення, let або var для змінюваності властивостей. Увімкнення CodingKeys перетворює snake_case ключі JSON, такі як user_name, на camelCase та додає відповідний enum CodingKeys, щоб декодування збігалося з оригінальними іменами полів; залишіть його вимкненим, щоб зберегти ключі JSON як є. Рівень доступу визначає, чи є тип та його властивості public або internal. Опція для дат Date розпізнає рядки ISO-8601 та типізує їх як Date замість String. Відступ дозволяє відповідати стилю вашого проекту: 2 пробіли, 4 пробіли або табуляція.

Поле, у якому різні типи чередуються в масиві зразка — наприклад, значення, яке іноді є числом, іноді рядком — використовує невеликий wrapper AnyCodable, який додається до виведення лише за необхідності. Це дозволяє структурі компілюватися замість прихованого неправильного вгадування. Ключи, які не є допустимими ідентифікаторами Swift, включаючи емодзі або ключі, що починаються з цифри, автоматично очищуються та переносяться через CodingKeys, так що нічого не втрачається.

Усе працює локально у вашому браузері по мірі введення — зразок JSON ніколи не завантажується та не відправляється на сервер. Це важливо, коли зразок надходить від реального відповіді API. Скопіюйте сгенерований Swift, завантажте його як файл .txt або відправте назад у вхід для подальшого уточнення.

FAQ

Як обробляються вкладені об'єкти JSON?
Кожен вкладений об'єкт стає власною структурою Swift, названою за ключем, під яким він з'явився, і на який посилається з батьківської структури за типом.
Що трапляється з полем, яке іноді має значення null або відсутнє?
Воно генерується як опціональна властивість зі знаком питання, тому декодування ніколи не розбивається на реальній відповіді, яка його опускає.
Що саме робить опція CodingKeys?
Коли вона увімкнена, snake_case ключ JSON на кшталт created_at стає властивістю createdAt, а enum CodingKeys переносить його назад для декодування. Коли вона вимкнена, ім'я властивості збігається з ключем JSON настільки тісно, наскільки дозволяють правила ідентифікаторів Swift.
Чи може вона генерувати class замість struct?
Так. Опція Declaration перемикає кожен сгенерований тип між struct і class, зберігаючи ту саму Codable конформність.
Мій JSON завантажується кудись?
Ні. Структура генерується повністю у вашому браузері — ваш зразок JSON ніколи не покидає ваш пристрій.