JSON в Go

Генерация структур Go с тегами JSON из JSON

Ввод JSON

Параметры

Модель
Сериализация
Дополнительно

Вывод Go

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

Что генерирует JSON to Go

JSON to Go превращает ответ API или любой пример JSON в определения структур Go, готовые для encoding/json. Каждое экспортируемое поле получает тег json:"key", поэтому переименованные поля по-прежнему декодируются. Ключи, которые нельзя выразить в теге структуры (пустые ключи, кавычки, запятые или символы вроде эмодзи), исключаются через json:"-" и перечисляются в заметках, а не сопоставляются молча с неверным именем.

Как использовать
  1. 1.Вставьте JSON, загрузите или перетащите файл .json либо загрузите один из примеров.
  2. 2.Задайте имя корневой структуры и пакет (по умолчанию main).
  3. 3.Включите или выключите указатели и omitempty; в разделе «Дополнительно» можно встроить вложенные структуры.
  4. 4.Прочитайте заметки под выводом, затем скопируйте код или скачайте models.go.
Как выводятся типы
  • •Проверяется каждый элемент массива, а не только первый, и объекты одного массива объединяются.
  • •Ключ, отсутствующий в части объектов, необязателен; ключ, который иногда равен null, допускает null. Эти случаи различаются.
  • •1 и 2.5 в одной позиции расширяются до дробного числа; о других смешениях выводится заметка.
  • •Пустые массивы и значения, которые всегда равны null, не дают сведений о типе, поэтому используется обобщённый тип, а заметка объясняет причину.
  • •Сопоставление типов: строка → string, целое число → int64 (за его пределами uint64 или json.Number), дробное число → float64, логическое значение → bool, массив → []T, объект → struct, неизвестное или смешанное → any.
  • •При включённых указателях необязательные или допускающие null скаляры и структуры становятся *T; срезы и any никогда не бывают указателями, потому что у них уже есть значение nil.
omitempty, ограничения и конфиденциальность

omitempty добавляется только к полям, которые в примере отсутствовали или были null. При кодировании он также отбрасывает нулевые значения, например 0, "" и false, поэтому это не то же самое, что «необязательное». Пример показывает, как данные выглядели один раз, а не полный контракт API. Проверьте необязательные поля, обобщённые типы и разрядность чисел, прежде чем полагаться на код. Ввод ограничен 5 МБ и 256 уровнями вложенности; начиная с 2 МБ генерация ждёт нажатия кнопки «Сгенерировать». Всё выполняется в браузере, JSON никуда не загружается.

CodingTool официально запущен на

Launched on StartupBaseCodingTool.dev - Free, Fast & Easy Developer Tools in One Place | Product HuntCodingTool - Featured on Startup FameFazier badgeListed on Turbo0Featured on Twelve ToolsFeatured on Findly.toolsLaunchpadly Startup DirectoryCodingTool.dev — Featured on Smol Launch