Utilo

JSON в типы

Генерируйте структуры Go, структуры Rust serde, схемы Zod, модели Pydantic, data class Kotlin, record Java, классы C#, Swift Codable и типы TypeScript из JSON. Необязательные и nullable-поля в массивах определяются автоматически.

Что делает этот генератор JSON для типов

Написание модельных классов вручную для большого ответа API медленно и подвержено ошибкам. Вставьте образец JSON, и этот инструмент выводит полную модель типа и печатает ее как Go structs с тегами json, Rust structs с производными serde, схемами Zod, Pydantic моделями, классами данных Kotlin, записями Java, классами C #, структурами Swift Codable или интерфейсами TypeScript. Вложенные объекты становятся собственными именными типами, массивы объектов объединяются так, что каждое поле, увиденное в любом элементе, захватывается, и вывод выполняется в веб-работнике, так что даже многомегабайтные образцы не замораживают страницу.

Как пользоваться

  1. Вставьте JSON в вход или загрузите образец.
  2. Укажите имя типа root, например User или OrderResponse.
  3. Выберите вкладку целевого языка. Выход регенерируется мгновенно.
  4. Копируйте код в свой проект и корректируйте имена или типы, где ваши знания домена побеждают вывод.

Как работает вывод

  • Необязательные поля: если ключ отсутствует в некоторых элементах массива, он отмечен как необязательный (? в TS, Option<T> в Rust, omitempty в Go, = None в Pydantic).
  • Обнуждаемые поля: Значение null делает поле нулевым на целевом языке.
  • Числа: Целые числа и плавающие числа отслеживаются отдельно, так что 42 становится int64/i64/Long в то время как 4.2 становится типом плавающего числа.
  • Смешанные типы: когда одно и то же поле содержит разные типы, языки с союзами (TypeScript, Zod, Pydantic) получают союз, а остальные возвращаются к общему типу значения JSON.
  • Название: Ключи, такие как user_id или created-at, конвертируются в идиоматические имена полей на языке, при этом исходный ключ сохраняется в тегах или аннотациях (json:"user_id", #[serde(rename)], @SerialName, CodingKeys).

Советы

  • Дайте ему репрезентативный образец. Один объект с пустым массивом ничего не говорит инструменту об элементах массива.
  • Объедините несколько ответов в один массив верхнего уровня для надежного захвата дополнительных полей.
  • Выход Zod экспортирует как схему, так и выведенный тип, так что вы получаете проверку в режиме выполнения и статическое вводы вместе.

Частые вопросы

Мой JSON загружен где-нибудь?

Нет, нет, нет. Анализ и генерация кода происходит в вашем браузере в фоновом рабочем.

Почему поле вводится как any или interface{}?

В каждом образце был null, или пустой массив, так что конкретный тип не мог быть выведен. Укажите выборку с реальной стоимостью.

Это работает на свиданиях?

JSON не имеет типа даты, поэтому строки ISO остаются строками. Измените их на time.Time, datetime или Date вручную, если ваш декодер это поддерживает.

Могу ли я генерировать схему JSON?

Используйте выход Zod или Pydantic; обе библиотеки могут экспортировать схему JSON напрямую.

Да. Вся обработка происходит прямо в вашем браузере с помощью JavaScript, Web Workers и веб-API. Ничего из того, что вы вводите, вставляете или загружаете, не отправляется на наши серверы.

Эта страница переведена с английского автоматически. Если вы заметили ошибку, сообщите нам.