Конвертер 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 в код
- Вставьте или введите репрезентативный образец JSON в поле ввода или нажмите «Образец», чтобы загрузить пример.
- Откройте «Настройки» и выберите цель в разделе «Преобразовать в»: TypeScript, Go, Rust, Zod или JSON Schema.
- Задайте «Имя корневого типа», чтобы управлять именем интерфейса, структуры или схемы верхнего уровня.
- Читайте сгенерированный код в панели вывода — он обновляется автоматически по мере того, как вы редактируете JSON или меняете параметры.
- Посмотрите на статистику «Типы», чтобы узнать, сколько именованных типов было выведено, затем нажмите «Копировать», чтобы получить результат.
Примеры
Объект в интерфейс 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. Если разбор не удался, инструмент показывает ошибку со строкой и столбцом, когда это возможно; исправьте отмеченное место, и код мгновенно перегенерируется.
Похожие инструменты
Кодирование / декодирование Base32 / Base58
Кодируйте текст в Base32 (RFC 4648) или Base58 (алфавит Bitcoin) и декодируйте оба формата обратно в текст — полностью безопасно для UTF-8 и целиком в вашем браузере.
Кодирование / декодирование Base64
Кодируйте или декодируйте Base64 (безопасно для UTF-8): URL-безопасный алфавит, необязательное заполнение, перенос 64/76, счётчики байтов и символов и просмотр байтов в hex или двоичном виде.
Конвертер регистра и счётчик
Преобразуйте текст между UPPERCASE, camelCase, PascalCase, snake_case, CONSTANT_CASE, kebab-case, dot.case и другими форматами и считайте символы, слова и строки.
Форматер и минификатор кода
Мгновенно форматируйте или минифицируйте HTML, CSS и JavaScript прямо в браузере с отступом в 2 пробела, 4 пробела или табуляцию и сжатием JavaScript на основе Terser.