Генераторы кода
Генератор структур от JSON до Go
Вставьте JSON и получите структуры в стиле gofmt с правильными тегами json за считанные секунды. Необязательные поля, обнаруженные в элементах массива, становятся пропущенными, значения, допускающие значение NULL, становятся указателями, а целые числа остаются целыми числами.
- 100% работает в вашем браузере
- Нет регистрации · Нет загрузок
- Бесплатное неограниченное использование
JSON образец
Примеры: Пользовательский объект · Событие вебхука —⌘/Ctrl + Enter преобразует · перетаскивает файл, чтобы загрузить его · обрабатывается локально
Структуры Go
Вывод доступен только для чтения. Используйте «Копировать», «Загрузить» или «Поделиться», чтобы удалить его.
Как использовать инструмент JSON до конца
-
Вставьте свой JSON
Ответ от API, который вы интегрируете, работает лучше всего. Включите несколько элементов массива, чтобы необязательные поля были видны.
-
Установите имя корневого типа
Назовите его в честь ресурса: Пользователь, Событие, Заказ. Вложенные типы именуются по их ключам автоматически.
-
Скопируйте в свой файл 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.