Генератор JSON в Go

Ввод JSON

Загрузка редактора…

Сгенерированный Go

Configuration

Введите JSON, чтобы сгенерировать структуры Go

Структуры с корректными именами и JSON‑тегами

Как конвертировать JSON в Go – пошаговое руководство

Используйте этот генератор JSON to Go для создания структур Go с тегами JSON из образцов JSON для API и сервисов.

  1. Шаг 1. Вставьте образец JSON.

    • Вставьте типичный объект или массив JSON в левый редактор.
    • Включите вложенные объекты, массивы и поля, допускающие значение NULL, чтобы типы выводились правильно.
    • Используйте Import для загрузки JSON из файла, URL-адреса или образца данных.
  2. Шаг 2. Выберите параметры структуры Go.

    • Установите корень Struct Name (например, Root).
    • Решите, как обрабатывать необязательные поля (*string, omitempty или пользовательские типы).
    • Подтвердите теги JSON и имена, чтобы ключи сопоставлялись правильно (например, json:"createdAt").
  3. Шаг 3. Просмотрите сгенерированный код.

    • Проверьте имена полей, типы и способ моделирования массивов/объектов.
    • Настройте такие параметры, как Root Type Name, обработку значений NULL и платформы, если они доступны.
    • Если поле выведено неправильно, измените образец JSON и выполните его повторное создание.
  4. Шаг 4. Используйте структуры Go

    • Вставьте структуры в свой пакет и запустите gofmt.
    • Демаршалируйте с помощью encoding/json в корневой тип.
    • Добавьте проверку (например, обязательные поля) на границе API.
  5. Шаг 5 – Скопируйте или загрузите

    • Скопируйте выходные данные в свой проект или загрузите их в виде файла.
    • Запустите форматтер/линтер в соответствии со стилем вашего кода.
    • Добавьте библиотеки синтаксического анализа/сериализации JSON, если они требуются для вашего языка.

Советы

  • Используйте указатели для полей, допускающих значение NULL, когда вам нужно отличить отсутствующие поля от пустых.
  • Предпочитайте time.Time только в том случае, если вы управляете форматом метки времени.
  • При необходимости храните структуры DTO отдельно от внутренних моделей предметной области.
Пример вывода (упрощенный)
// Ввод JSON
{
  "id": 123,
  "name": "Maeve Winters",
  "email": "[email protected]",
  "active": true,
  "roles": ["admin", "editor"],
  "metadata": { "plan": "pro" },
  "createdAt": "2024-03-01T10:15:00Z",
  "score": 99.5,
  "notes": null
}

// Generated Go structs (simplified)
type Metadata struct {
  Plan string `json:"plan"`
}

type Root struct {
  ID        int       `json:"id"`
  Name      string    `json:"name"`
  Email     *string   `json:"email"`
  Active    bool      `json:"active"`
  Roles     []string  `json:"roles"`
  Metadata  Metadata  `json:"metadata"`
  CreatedAt string    `json:"createdAt"`
  Score     float64   `json:"score"`
  Notes     any       `json:"notes"`
}

Сопутствующие инструменты JSON и Go

Узнайте больше об инструментах JSON и схемы, которые отлично работают вместе с генератором JSON to Go.

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

Какие возможности Go поддерживаются?

Генератор создаёт Go‑структуры с корректными именами полей, JSON‑тегами для marshal/unmarshal и подходящими типами данных, следуя конвенциям Go.

Как обрабатываются JSON‑теги?

Генератор автоматически добавляет JSON‑теги к полям. При необходимости можно включить YAML или XML‑теги для поддержки нескольких форматов.

Можно ли настроить имя пакета?

Да! Вы можете указать любое имя пакета. По умолчанию — «main», но можно использовать «models», «types» и т. п.

Как соблюдаются соглашения именования Go?

Генератор преобразует имена полей JSON в корректные Go‑имена (PascalCase для экспортируемых полей), сохраняя исходные имена в JSON‑тегах.

Генератор JSON в Go | JSONSwiss