Конвертер JSON в Go struct — генератор структур
Преобразуйте JSON в структуры Go онлайн: теги json, omitempty, указатели для необязательных полей и функции unmarshal. Бесплатно и приватно в браузере.
🔒 Работает полностью в вашем браузере — ничего не загружаетсяГенерируйте структуры Go из JSON
Писать структуры Go вручную для большого ответа API долго и легко ошибиться. Этот конвертер JSON в Go делает это мгновенно: вставьте образец JSON — и он сгенерирует экспортируемые типы struct с правильным регистром имён полей и тегами json, сопоставляющими каждое поле с исходным ключом. Вложенные объекты становятся отдельными именованными структурами, массивы — срезами, целые и дробные числа различаются как int64 и float64, а временные метки ISO 8601 распознаются как time.Time. Результат готов к использованию с encoding/json без дополнительных правок.
Инструмент работает на quicktype, который просматривает каждый элемент каждого массива, прежде чем выбрать тип. Если у одного элемента списка есть поле, которого нет у остальных, это поле становится указателем, и нулевое значение и отсутствующее значение остаются различимыми — деталь, которую конвертеры с одним проходом часто упускают.
Параметры, важные для Go
Задайте имя package, чтобы файл компилировался там, куда вы его положите. Включите omitempty, когда вы также сериализуете эти структуры обратно в JSON и хотите, чтобы отсутствующие необязательные поля оставались отсутствующими. По умолчанию генератор добавляет небольшие вспомогательные функции Unmarshal… и Marshal вокруг корневого типа; отметьте Structs only, если вы предпочитаете сами вызывать json.Unmarshal и вам нужны только типы. Переименуйте корневую структуру из Root в нужное доменное имя — например, Repository или WebhookEvent.
Как получить лучший результат
Дайте конвертеру репрезентативный образец: массив с несколькими элементами, заполненные необязательные поля и вложенные объекты с данными, а не пустые. Пустые массивы и значения null не дают выводу типов ничего для работы, и он откатывается к interface{}. После вставки кода запустите gofmt, проверьте числовые типы там, где образец может не показывать полного диапазона, и замените универсальные строки собственными типами, где ваш API документирует фиксированные значения. Поскольку вся обработка происходит в вашем браузере, внутренние или клиентские данные никогда не покидают ваш компьютер.
Как использовать
- Вставьте JSONВставьте ответ API или любой документ JSON либо загрузите образец.
- Выберите параметрыЗадайте имя корневой структуры и package и решите, нужны ли omitempty и вспомогательные функции.
- Скопируйте структурыСкопируйте код Go или скачайте файл .go и запустите gofmt, как обычно.
Часто задаваемые вопросы
Добавляет ли он теги json для struct?
`json:"key"`, сохраняющий исходный ключ JSON, а ,omitempty к необязательным полям можно добавить одним флажком.Как обрабатываются необязательные поля и null?
*string, так что отсутствующее значение можно отличить от нулевого.Что делают вспомогательные функции?
UnmarshalRoot и Marshal. Отметьте Structs only, чтобы получить только объявления типов.