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

Форматтеры кода

Форматирование и оформление кода Python, JSON и других языков.

Другие инструменты

Инструменты JSON и данных

Сравнение JSON, проверка схем и преобразование JSON в CSV или YAML.

Другие инструменты

Инструменты для таблиц

Просмотр файлов CSV и Excel, форматирование таблиц и преобразование CSV в Excel или SQL.

Инструменты Markdown

Работа в редакторе Markdown и преобразование Markdown в HTML или обычный текст.

Текстовые инструменты

Сравнение текстов, подсчёт слов, сортировка строк, поиск и замена текста.

Конвертация и воспроизведение аудио

Конвертация аудио, воспроизведение звуковых или PCM-файлов и редактирование аудиометаданных.

Редактирование и эффекты аудио

Редактирование, объединение и разделение аудио, удаление шума и настройка скорости, высоты тона или громкости.

Другие инструменты

Речевые инструменты

Генерация речи из текста с помощью ИИ, расшифровка записей и запись голоса.

Инструменты для видео

Конвертация и сжатие видео, обрезка клипов и изменение размера кадров.

Другие инструменты

Воспроизведение и запись видео

Воспроизведение видео, запись экрана или камеры и использование онлайн-зеркала.

Инструменты PDF

Объединение PDF, разделение страниц, сжатие файлов и преобразование PDF в изображения.

Другие инструменты

Инструменты для изображений

Конвертация и изменение размера изображений, сжатие файлов и распознавание текста с OCR.

Другие инструменты

Создание изображений

Создание GIF, изображений из текста, снимков экрана, облаков слов и значков сайта.

Инструменты для субтитров

Редактирование субтитров, преобразование SRT в VTT и настройка временных меток.

Инструменты для архивов

Распаковка архивов, создание ZIP-файлов и сжатие папок.

Кодирование и декодирование

Кодирование и декодирование Base64, экранирование URL и работа с escape-последовательностями HTML или Unicode.

Другие инструменты

Числовые инструменты

Преобразование систем счисления, запись чисел словами и работа с двоичными или шестнадцатеричными данными.

Калькуляторы

Калькуляторы процентов, дробей и статистики для повседневных расчётов.

Инструменты времени

Онлайн-часы, секундомер и вычисление разницы между датами.

Сетевые инструменты

Определение IP-адреса, проверка IPv6 и вычисление диапазонов CIDR.

Преобразование единиц

Преобразование единиц длины, веса, температуры и хранения данных.

Инструменты для работы с цветом

Преобразование цветов, получение палитры из изображения и проверка контрастности.

QR-коды и штрихкоды

Создание и чтение QR-кодов и штрихкодов, включая QR-коды Wi-Fi.

Инструменты разработки и безопасности

Создание хешей, паролей и UUID, проверка регулярных выражений и работа с утилитами для кода.

Другие инструменты

Полезные инструменты

Проверка размера экрана, измерение экранной линейкой, тестирование клавиатуры и использование телесуфлёра.

Игры

Отдохните за игрой «Разбей золотые яйца».