YamlBox

Генераторы кода

Генератор структур от JSON до Go

Вставьте JSON и получите структуры в стиле gofmt с правильными тегами json за считанные секунды. Необязательные поля, обнаруженные в элементах массива, становятся пропущенными, значения, допускающие значение NULL, становятся указателями, а целые числа остаются целыми числами.

Варианты конвертации

JSON образец

Примеры: Пользовательский объект · Событие вебхука —⌘/Ctrl + Enter преобразует · перетаскивает файл, чтобы загрузить его · обрабатывается локально

Структуры Go

Вывод доступен только для чтения. Используйте «Копировать», «Загрузить» или «Поделиться», чтобы удалить его.

Как использовать инструмент JSON до конца

  1. Вставьте свой JSON

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

  2. Установите имя корневого типа

    Назовите его в честь ресурса: Пользователь, Событие, Заказ. Вложенные типы именуются по их ключам автоматически.

  3. Скопируйте в свой файл Go

    Вставьте в свой проект и запустите gofmt. Имена полей пишутся с заглавной буквы, теги точно соответствуют исходным ключам, поэтому json.Unmarshal работает сразу.

Чем отличается этот инструмент

  • Теги json соответствуют исходным ключам, включая Snake_case и тире.
  • пропуск полей, отсутствующих в некоторых элементах массива
  • Типы указателей для действительно значений, допускающих значение NULL (*string), поэтому значение NULL демаршалируется без ошибок.
  • int vs float64 на основе фактических значений выборки; любой для несовместимых смесей
  • вывод, совместимый с gofmt, с отступом табуляции

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

JSON до конца — часто задаваемые вопросы

Почему некоторые поля становятся указателями?

Значение null 00 не может быть сохранено в простой строке или int, поэтому поле, допускающее значение NULL, получает указатель (*string, *int). Это позволяет кодированию/json без ошибок различать «отсутствует» и «присутствует, но имеет значение null», а именно для этого и нужны типы указателей.

Что происходит, когда поле имеет смешанные типы?

Если значение представляет собой строку в одном элементе и число в другом, генератор использует любой, а не изобретает неправильный конкретный тип. Затем вы можете выбрать собственный UnmarshalJSON, если API действительно настолько свободен.

Включают ли сгенерированные теги пропуски?

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

Совместим ли вывод с gofmt?

Да — табуляции, выравнивание и порядок полей соответствуют соглашениям правительства. Запустите gofmt -l после вставки, и он не должен сообщать об изменениях.

Могу ли я создавать структуры для больших ответов?

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

Ищете “json в структуру golang”, “перейти к генератору структур”, “json для выхода в Интернет”? Вы находитесь в правильном месте — просмотреть все инструменты 19.

Более глубокое чтение

Статья в блоге · 5 минута чтения JSON to Go: структуры, которые демаршализуются с первой Преобразуйте JSON в структуры Go с правильными именами полей и тегами json, включая вложенные типы, а также числовые, нулевые и временные ловушки для наблюдения. Читать руководство →