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 или отправьте обратно во вход для дальнейшего уточнения.