Omnikit
РазработкаФайлыФинансыВсе инструменты
Ctrl K
Инструменты для разработкиИнструменты для файловФинансовые калькуляторыВсе инструменты
ГлавнаяИнструменты для разработчиковКонвертер JSON в структуры Go
EnglishالعربيةবাংলাDeutschEspañolFrançaisPolskiPortuguêsРусский

Конвертер JSON в структуры Go

разработка

Превратите пример JSON в структуры Go с тегами json, int или float64, указателями и omitempty

Работает в вашем браузере. Ничего из того, что вы вводите, никуда не отправляется. Проверено 16 октября 2026 г..

Вставьте пример JSON и получите типы struct на Go с тегами json, готовые для json.Unmarshal. Целые числа становятся int, а свыше 2 147 483 647 — int64, любая дробь делает поле float64; значение, которое иногда равно null, становится указателем, а ключи, которых нет в некоторых объектах, получают omitempty.

Эта страница переведена машинным способом с английского оригинала. Перевод ещё не проверен человеком, поэтому ориентируйтесь на английскую версию. Читать английский оригинал

Дальше:
  • JSON в TypeScript Создайте интерфейсы или типы TypeScript по образцу JSON
  • Форматирование и проверка JSON Форматирование, проверка, минификация и сортировка JSON с точным местом ошибки

Как преобразовать JSON в структуру Go

1

Вставьте пример JSON, например ответ API, в левое поле.

2

Типы Go появляются по мере ввода: одна структура на объект, с тегами json и именами в стиле Go, например UserID.

3

Выберите «Вложенные структуры inline» или omitempty для каждого поля, если они нужны, и задайте имя корневого типа.

4

Нажмите «Копировать» или «Скачать», чтобы сохранить файл .go, и добавьте свою строку package.

О конвертере JSON в структуры Go

Go декодирует JSON в структуры, и каждому полю нужен правильный тип и тег json:"..." с именем ключа. Этот конвертер пишет такие типы по примеру, так что ответ API на 200 строк превращается в правильный Go за одну вставку.

Как выбираются типы.

Значение JSON Тип Go
"text" string
true / false bool
42 (только целые числа) int или int64 за пределами 32 бит
4.5 (встретилась любая дробь) float64
null и ещё какой-то тип указатель, например *string
только null или смешанные виды any
[ ... ] срез, например []string
{ ... } именованная или встроенная структура

Массивы объектов. Все объекты массива сливаются в одну структуру, поэтому поле, которое есть только в некоторых из них, всё равно присутствует, с ,omitempty в теге. Два объекта с точно одинаковыми ключами и типами используют одно имя типа.

Имена. Ключи становятся экспортируемыми именами в стиле Go: user_id становится UserID, avatar_url — AvatarURL, по списку аббревиатур golint. Ключ, начинающийся с цифры, получает N впереди; два ключа, дающие одно имя, нумеруются. Ключ с символами, которые тег не может содержать, например запятой, помечается комментарием, потому что encoding/json его не сопоставит.

Параметры. «Вложенные структуры inline» пишет один тип с анонимными структурами внутри, что подходит для разового ответа. omitempty для каждого поля подходит структурам, которые вы также сериализуете. Корневой тип называется Root, если вы не дадите ему имя.

Каждый результат проверен обратным чтением Go и декодированием примера по правилам encoding/json. Ничто из вставленного не покидает браузер.

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

Как преобразовать JSON в структуру Go?

Вставьте пример JSON в конвертер, и рядом появится структура Go, с тегом json у каждого поля и вложенными объектами в виде отдельных типов. Скопируйте её в свой пакет и декодируйте через json.Unmarshal(data, &v), где v — переменная корневого типа.

Числа JSON в Go должны быть int или float64?

Используйте int, когда каждое значение в примере целое, и float64, когда у какого-то значения есть дробная часть, потому что encoding/json отказывается записывать 4.5 в int. Конвертер выбирает для каждого поля отдельно и берёт int64, когда целое число больше 2 147 483 647.

Как обрабатываются значения null в структурах Go?

Поле, которое встречается и как null, и со значением, становится указателем, например *string, так что nil означает null, а пустая строка остаётся отличной от него. Поле, которое всегда было null, становится any, поскольку пример не говорит, что оно содержало бы иначе.

Что делает omitempty в теге json?

С omitempty json.Marshal пропускает поле, когда в нём нулевое значение: пустая строка, 0, false, nil или пустой срез. Конвертер добавляет его к ключам, которых нет в некоторых объектах массива, а переключатель добавляет его ко всем полям.

Почему поле называется UserID, а не UserId?

Стиль Go, который проверяют golint и большинство линтеров, пишет аббревиатуры заглавными: ID, URL, HTTP, API, JSON и ещё около сорока. Тег json сохраняет исходный ключ, user_id или userId, так что декодирование по-прежнему точно совпадает с API.

Загружается ли мой JSON куда-нибудь?

Нет. Преобразование выполняется в вашем браузере без запросов к серверу, и JSON не сохраняется, так что ответы API с токенами или личными данными остаются на вашем устройстве. Закройте вкладку, и ничего не останется.

Источники

  • The Go Programming Language Specification, Struct typesField declarations, identifiers and tags
  • Go standard library, encoding/jsonTag syntax, omitempty, how numbers and null decode
  • golint, lint.go (commonInitialisms)The initialisms written in capitals: ID, URL, HTTP, API and others

Последняя проверка: 16 октября 2026 г..

Ставки и правила меняются; проверьте источник, прежде чем полагаться на цифру.

Всё ещё не получается? Задайте вопрос об инструменте «Конвертер JSON в структуры Go» и ответить может любой, кто знает. Учётная запись не нужна.

Похожие инструменты

Все инструменты для разработчиков
Кодирование и декодирование Base64Текст и файлы в Base64 и обратно, с режимом для URL и предпросмотром изображенийКонвертер Unix-времениМетки времени Unix в даты и даты в метки времени, в любом часовом поясеJSON в TypeScriptСоздайте интерфейсы или типы TypeScript по образцу JSONКонвертер CSV в JSONПреобразуйте CSV в JSON и JSON в CSV с предпросмотром таблицыКонвертер YAML в JSONПреобразуйте YAML в JSON и JSON в YAML с разрешёнными якорямиКодирование и декодирование URLПроцентное кодирование и декодирование текста и URL, с разбором каждой части ссылкиКонвертер систем счисленияДвоичная, восьмеричная, десятичная, шестнадцатеричная и любая система до 36, точно при любом размере, с дополнительным кодомColor ConverterHEX, RGB, HSL, HWB, OKLCH and CMYK in both directions, with a contrast check
Был ли этот инструмент полезен?
Omnikit

Небольшие задачи прямо в вашем браузере. Бесплатно, быстро и конфиденциально. Файлы никогда не загружаются на сервер.

Файлы

  • Compress Image
  • Image to PDF
  • Merge PDF
  • Compress PDF
  • PDF to Word
  • Word to PDF

Разработка

  • JSON Formatter & Validator
  • Base64 Encode & Decode
  • JWT Decoder, Verifier & Encoder
  • Password Generator
  • UUID Generator
  • Unix Timestamp Converter

Финансы

  • SIP Calculator
  • EMI Calculator
  • GST Calculator
  • FD Calculator
  • PPF Calculator
  • Lumpsum Calculator
EnglishالعربيةবাংলাDeutschEspañolFrançaisPolskiPortuguêsРусский
РуководстваВопросыО сайтеКак мы проверяемБиблиотека законов (бета)КонфиденциальностьУсловияРаскрытие информацииКонтактыMore: Exam practice (UGC NET Paper 1)Работает в вашем браузере. Ничего не загружается на сервер. © 2026 Omnikit (theomnikit.com)