Соберите разные примеры
Корень должен быть объектом или непустым массивом объектов. Для массива создаётся модель элемента Root: декодируйте [Root].self. Вложенные массивы тоже объединяют все элементы.
Генерация типов
Сравните две записи: отсутствие ключа влияет на опциональность свойства.
Разбор и генерация выполняются в этом браузере. Входные данные не отправляются и не сохраняются.
Корневой массив задаёт элемент Root; декодируйте [Root].self.
Структур: 2 · опциональных свойств: 2
JSON в Swift помогает подготовить модель по примерам API. Добавьте записи с отсутствующими ключами: один полностью заполненный объект не показывает, какие поля могут пропадать.
Этот конвертер JSON в Swift создаёт структуры Swift и CodingKeys как основу для проекта. Наблюдаемые типы не заменяют требования протокола, бизнес-проверки и будущие варианты ответа.
JSON в Swift объединяет объекты в одной позиции массива. Отсутствующий ключ или null делает свойство опциональным; постоянно присутствующее значение сохраняет конкретный тип.
По умолчанию временные отметки остаются строками. Режим ISO связывает только корректные полные даты с Date и подходящим декодером, сохраняя остальные строки.
Корень должен быть объектом или непустым массивом объектов. Для массива создаётся модель элемента Root: декодируйте [Root].self. Вложенные массивы тоже объединяют все элементы.
Сохраняйте CodingKeys для snake_case и необычных ключей. Выберите camelCase или сохранение допустимых имён. Для ISO нужны часовой пояс и не более трёх знаков дробной части секунды.
Автогенерация ждёт 350 мс после правки. Отключите её для кнопки или Ctrl/Cmd+Enter. Любое изменение сразу блокирует устаревший экспорт. Пример и очистка показывают число символов перед применением; затем доступна одна отмена.
JSON в Swift создаёт свойства var и структуры Codable. Непустые вложенные объекты получают вспомогательные модели, пустые становятся словарями, смешанные значения используют собственный рекурсивный enum JSONValue вместо Any.
Группы целочисленных записей в знаковом 64-битном диапазоне используют Int64. Десятичные, экспоненциальные записи, большие целые и содержащие их числовые группы получают Foundation.Decimal. Промежуточного JavaScript Number нет.
Режим наблюдения учитывает отсутствующие ключи и null; общий режим делает все свойства опциональными. Синтезированный Codable читает оба случая как nil и обычно пропускает такие свойства при кодировании. Различие между ними не сохраняется.
makeJSONDecoder() оставляет стандартную стратегию ключей. При наличии Date он пробует ISO8601DateFormatter с дробными секундами и без них. Чтобы снова получить ISO-текст, отдельно настройте стратегию дат JSONEncoder.
Да. Все структуры реализуют Codable, а смешанные значения представлены совместимым рекурсивным enum. JSON в Swift добавляет makeJSONDecoder(); используйте Root.self или [Root].self и оставьте стандартную стратегию ключей.
В корне принимается объект или непустой массив только из объектов. Вложенные объекты получают вспомогательные структуры, массивы объединяют все элементы. Для пустых объектов и смешанных значений используются более общие типы.
Ключ отсутствует в другом примере или содержит null. Можно также включить опциональность для всех свойств. Codable читает оба случая как nil и обычно пропускает их при кодировании; три состояния требуют собственной реализации.
Непустой объект становится отдельной структурой в том же файле. Для массивов учитываются все элементы, а не только первый. Пустой объект становится словарём, неоднородные значения — рекурсивным JSONValue.
Генератор сохраняет исходные токены и выбирает Int64 либо Decimal в указанном бюджете. Независимое десятичное сравнение выполнено на Swift 6.3.1/macOS 26. Foundation менялся между версиями ОС, поэтому повторите числовые тесты на системе развёртывания.
Нашли случай для улучшения типов?
Используйте JSON в Swift с пропущенными ключами, null и реальными числами. Скомпилируйте скачанный файл и проверьте декодирование в целевой среде.