Конвертер JSON в код

Превратите образец JSON в интерфейсы TypeScript, структуры Go, структуры serde Rust, схему Zod или JSON Schema.

Загрузка инструмента…

Конвертер JSON в кодВставьте репрезентативный образец JSON и мгновенно получите строго типизированный код на целевом языке: интерфейсы TypeScript, структуры Go с тегами json, структуры serde Rust, схему Zod или JSON Schema draft-07. Типы выводятся прямо из данных — вложенные объекты становятся именованными типами, массивы определяют тип своего элемента, а поля, которые есть не в каждом элементе массива, помечаются как необязательные. Всё работает в вашем браузере, поэтому ваш JSON никогда не загружается на сервер.

Что такое Конвертер JSON в код?

JSON в код — это бесплатный генератор типов, работающий целиком в браузере: он читает образец JSON и пишет соответствующую модель данных на выбранном вами языке. Выберите цель в меню «Преобразовать в» — интерфейс TypeScript, структура Go, структура serde Rust, схема Zod или JSON Schema — и задайте «Имя корневого типа», чтобы назвать тип верхнего уровня. Механизм вывода обходит JSON: строки, числа, логические значения и null сопоставляются с нативными типами, вложенные объекты поднимаются в собственные именованные типы, массивы перенимают тип своего элемента, а ключи, отсутствующие в некоторых элементах массива, становятся необязательными. Фронтенд- и бэкенд-разработчики используют его, чтобы создавать DTO из ответов API, набрасывать схемы валидации и держать типы клиента и сервера синхронными, не печатая шаблонный код вручную.

Как пользоваться Конвертер JSON в код

  1. Вставьте или введите репрезентативный образец JSON в поле ввода или нажмите «Образец», чтобы загрузить пример.
  2. Откройте «Настройки» и выберите цель в разделе «Преобразовать в»: TypeScript, Go, Rust, Zod или JSON Schema.
  3. Задайте «Имя корневого типа», чтобы управлять именем интерфейса, структуры или схемы верхнего уровня.
  4. Читайте сгенерированный код в панели вывода — он обновляется автоматически по мере того, как вы редактируете JSON или меняете параметры.
  5. Посмотрите на статистику «Типы», чтобы узнать, сколько именованных типов было выведено, затем нажмите «Копировать», чтобы получить результат.

Примеры

Объект в интерфейс TypeScript

Ввод

{ "id": 1, "name": "Ada", "active": true }

Вывод

export interface Root {
  id: number;
  name: string;
  active: boolean;
}

Вложенный объект в структуру Go

Ввод

{ "user": { "age": 30 } }

Вывод

type User struct {
	Age float64 `json:"age"`
}

type Root struct {
	User User `json:"user"`
}

Массив с отсутствующим ключом в схему Zod

Вставьте массив вида [{"a":1,"b":2},{"a":3}] и переключите «Преобразовать в» на Zod. Поскольку у второго элемента нет b, генератор помечает b как .optional() в выведенном z.object, поэтому схема принимает обе формы.

Часто задаваемые вопросы

Загружается ли мой JSON куда-либо?
Нет. Разбор и генерация кода выполняются полностью в вашем браузере с помощью встроенного механизма вывода. Ваш JSON никогда не покидает устройство, а инструмент продолжает работать офлайн.
Какие цели поддерживаются?
Интерфейсы TypeScript, структуры Go (с тегами json и omitempty для необязательных полей), структуры serde Rust (с derive Serialize/Deserialize и rename при переименовании поля), схемы Zod и JSON Schema draft-07. Инструмент генерирует только то, что может достоверно вывести из вашего образца.
Как определяются необязательные поля?
По вашему образцу. Когда массив содержит объекты и какой-то ключ отсутствует в части из них, этот ключ выводится как необязательный. В остальном каждый ключ, присутствующий в образце, считается обязательным.
А как насчёт чисел, null и смешанных типов?
Числа сопоставляются с типом с плавающей точкой языка (number, float64, f64), null сопоставляется с nullable- или значимым типом в зависимости от цели, а поле, которое в разных образцах хранит разные типы, откатывается к допускающему типу (unknown, interface{}, serde_json::Value), а не угадывает.
Почему мой вывод пуст или показывает ошибку?
Ввод должен быть корректным JSON. Если разбор не удался, инструмент показывает ошибку со строкой и столбцом, когда это возможно; исправьте отмеченное место, и код мгновенно перегенерируется.

Похожие инструменты