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 в текущей вкладке браузера. Данные не загружаются на сервер.

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

Форматируйте и улучшайте оформление Java, Python, JavaScript, JSON, HTML и других языков; выравнивайте отступы, пробелы и переносы строк.

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

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

Обрезайте, объединяйте и разделяйте записи, удаляйте тишину и шум, меняйте громкость, скорость, тон или каналы.

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

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

Открывайте и редактируйте таблицы CSV или Excel, форматируйте табличный текст и преобразуйте CSV в Excel или SQL.

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

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

Пишите и просматривайте Markdown, отображайте схемы Mermaid и преобразуйте Markdown, HTML и таблицы.

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

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

Сравнивайте тексты, подсчитывайте слова и частые термины, сортируйте или заменяйте строки, просматривайте текст DOCX.

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

Словари

Находите значения, синонимы и антонимы китайских слов или транскрипции МФА для разных языков.

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

Конвертируйте MP3, WAV, FLAC и другие форматы, воспроизводите аудио или необработанный PCM, просматривайте и меняйте метаданные.

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

Просматривайте, сравнивайте и проверяйте JSON, тестируйте JSONPath или преобразуйте данные в CSV, YAML и XML.

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

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

Преобразуйте аудио в текст, создавайте речь из текста или записывайте свой голос в браузере.

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

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

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

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

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

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

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

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

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

Преобразуйте форматы изображений, изменяйте размер или кадрируйте фото, сжимайте, сравнивайте и распознавайте текст с OCR.

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

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

Делайте и оформляйте снимки экрана, превращайте текст в картинки или GIF, рисуйте на доске, создавайте облака слов и фавиконки.

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

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

Редактируйте субтитры SRT или VTT с предпросмотром видео, сдвигайте время, меняйте формат и управляйте дорожками субтитров.

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

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

Открывайте ZIP, 7Z, RAR и TAR, извлекайте нужные файлы и создавайте архивы; ZIP и 7Z можно защитить паролем.

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

Кодируйте и декодируйте Base64 или Base32, экранируйте URL, HTML и Unicode, просматривайте содержимое JWT.

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

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

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

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

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

Рассчитывайте проценты и дроби, сводите статистику и определяйте оценки, скидки или соотношение сторон.

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

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

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

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

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

Проверяйте IP и подключение IPv6, изучайте HTTP-запросы или HAR-файлы и рассчитывайте диапазоны адресов CIDR.

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

Преобразуйте единицы длины, веса, температуры, объёма данных и другие величины.

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

Преобразуйте значения HEX, RGB и HSL, извлекайте цвета из изображений, проверяйте контрастность или тестируйте экран заливками.

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

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

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

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

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

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

Проверяйте разрешение и частоту экрана, измеряйте экранной линейкой, тестируйте клавиши или читайте с телесуфлёра.

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

Игры

2048, Сапёр, Судоку, Гомоку, Танковый бой

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