Перейти к содержанию

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 пробела или табуляция.

Поле, в котором разные типы чередуются в массиве образца — например, значение, которое иногда является числом, иногда строкой — использует небольшую оболочку 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 никогда не покидает ваше устройство.