JSON в структуры Go

Создавайте объявления структур Go по репрезентативному объекту или массиву JSON, включая вложенные типы, экспортируемые имена полей и теги json с исходными именами свойств.

Задайте имена пакета и корневого типа, а затем создайте полный исходный файл Go с корректными экспортируемыми полями и тегами json, сохраняющими исходные имена свойств. Перед использованием типов в приложении проверьте варианты, выбранные на основе примера.

Как значения JSON сопоставляются с типами Go

Как создать структуры Go из JSON

  1. Вставьте объект JSON или непустой массив либо загрузите пример данных.
  2. Задайте имена пакета и корневого типа, а также укажите, нужно ли включать omitempty в теги json.
  3. Создайте исходный код Go, проверьте определённые типы, затем скопируйте или скачайте результат.

Частые вопросы о преобразовании JSON в структуры Go

Какие входные данные JSON можно использовать?

Используйте объект JSON или любой непустой массив JSON. Массив верхнего уровня превращается в именованный срез, а каждый объект в массиве участвует в определении полей. Имена свойств должны быть представимы тегами структур стандартного пакета encoding/json в Go; неподдерживаемые имена вызывают ошибку, а не изменяются без предупреждения.

Как обрабатываются массивы объектов и отсутствующие поля?

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

Что происходит со значениями null и смешанными типами?

Значение null, несовместимое сочетание типов или массив с несовместимыми значениями превращается в any. Пустой массив становится []any, поскольку пример не позволяет определить тип его элементов.

Можно ли использовать созданные типы без проверки?

Считайте результат отправной точкой, построенной по примеру. Перед добавлением типов в проект проверьте необязательные поля, строки даты и времени, объекты, похожие на карты, числовые диапазоны и идентификаторы, которые могут выходить за пределы точного представления чисел JSON.

Загружается ли мой JSON на сервер?

Нет. Этот инструмент анализирует и преобразует JSON в текущей вкладке браузера. Данные не загружаются на сервер.

Связанные инструменты: Форматтер JSON · JSON в TypeScript · Генератор JSON Schema