Генерация типов

JSON в классодин образец для пяти языков

В примере два разных объекта. Выберите язык и имя корневого типа.

JSON в класс

Ввод JSON

JSON анализируется только в этом браузере; образец не отправляется и не сохраняется.

Созданная модель · Rust

Параметры модели

Проверяются все объекты массива. Пропущенные и null-поля становятся необязательными; неизвестные типы проверьте вручную.

Объявлений: 2 · необязательных типов: 2

JSON в класс помогает получить черновую модель из ответа API. Массив нескольких однотипных объектов показывает поля, которые отсутствуют в первой записи, но встречаются позже. Этот генератор классов учитывает поля из всех записей.

Полученный код нужно проверить. Образец не доказывает бизнес-правила, будущие поля, точность денежных значений или настройки сериализатора проекта.

Зачем использовать JSON в класс?

Учитывать каждую запись массива

JSON в класс просматривает все объекты верхнего массива. Поле из второй записи не исчезает, а при отсутствии в других записях становится необязательным.

Две карточки объектов с разными полями объединяются в карточку модели; пустой круг отмечает необязательное поле.

Менять язык без повторного ввода

Один локальный JSON даёт структуры Rust, классы C#, Dart и PHP либо case class Scala. Расширение скачиваемого файла соответствует выбранному языку.

Карточка данных разветвляется на несколько дорожек к карточкам исходного кода разной формы.

Как дать достаточно данных для вывода типов

01

Добавьте различающиеся записи

Поместите несколько объектов одного ответа API в верхний массив. Ключи, встречающиеся не везде, станут необязательными; вложенные массивы проверяются по всем доступным элементам.

02

Уточните назначение результата

Rust получает атрибуты Serde, C# — System.Text.Json, Dart — fromJson/toJson. PHP и Scala выдают объявления, для чтения JSON в проекте потребуется дополнительный код или codec.

03

Экспортируйте только свежий код

Автогенерация ждёт 350 мс после правки. Отключите её, чтобы увидеть кнопку, либо нажмите Ctrl/Cmd+Enter. При изменении данных или опций копирование и скачивание сразу блокируются.

Какие модели создаются

Связь ключей в Rust и C#

Структура Rust содержит serde rename, Option и Vec. В C# атрибут JsonPropertyName хранит исходный ключ, а nullable-свойства отражают пропуски в образцах.

Методы преобразования Dart

Модель Dart включает типизированные поля и fromJson/toJson для вложенных объектов и списков. Проверьте сгенерированный код в реальном проекте Dart или Flutter.

Объявления PHP и Scala

PHP 8 получает типизированные свойства и аннотации элементов массива. Scala case class использует Option и List; готовый codec для десериализации не создаётся.

Числа без предварительного округления

JSON в класс читает исходные числовые токены до выбора типа. Огромные целые и дробные значения не выдаются за обычный узкий integer.

Пределы вывода по одному образцу

Только пять готовых языков
Доступны Rust, C#, Dart, PHP и Scala. Для TypeScript, Go, Java, Python и Swift есть отдельные инструменты; кнопок неготовых языков здесь нет.
Без Schema и загрузки URL
Правила required, диапазоны и ссылки JSON Schema или OpenAPI не применяются. URL не загружаются; по образцу нельзя доказать enum, дату или денежный формат.
Проверяйте широкие числовые типы
Целые вне диапазона signed 64-bit и десятичные числа получают широкие типы. Точность обратного преобразования также зависит от сериализатора проекта.
Объявления не заменяют парсер
Свойства PHP не заполняются одним вызовом json_decode, Scala нужен codec, Rust — зависимости Serde. Страница не компилирует и не выполняет сгенерированный код.
Строгий JSON и ограничения
Комментарии, повторные ключи, завершающие запятые и смешанный верхний массив отвергаются. Лимиты: 500 000 символов, глубина 100, 50 000 узлов, 1 000 000 символов результата.

Вопросы о JSON в класс

Как создать класс из строки JSON?

Вставьте объект JSON или непустой массив похожих объектов. Инструмент создаст корневое объявление и вложенные модели; проверьте их в собственном проекте.

Какие поля становятся необязательными?

Поля, отсутствующие в части элементов массива или имеющие значение null, становятся необязательными. По одному лишь null конкретный тип установить нельзя.

Как обрабатываются вложенные объекты и массивы?

Вложенные объекты становятся именованными моделями, а тип элемента массива выводится из всех видимых элементов. Несовместимые виды значений требуют более широкого типа.

Можно ли задать имя корневого класса?

Да. По умолчанию используется Root. Имя ASCII с заглавной первой буквой изменит названия объявлений и скачиваемого файла.

Передаются ли данные JSON на сервер?

Нет. Вставленный JSON остаётся в браузере; серверу не передаётся. Загрузки по URL и постоянного хранения образца тоже нет.

Не нашли подходящий случай?

Создайте черновик через JSON в класс

Передайте JSON в класс несколько реальных записей, проверьте необязательные поля и названия, затем испытайте файл выбранного языка в проекте.