Добавьте характерные варианты
Объедините записи одного формата ответа в массив. Похожие объекты в разных свойствах получают независимые вложенные структуры, а не общий тип по совпадению формы.
Генерация типов
Сравните две записи примера. Результат содержит объявление пакета и только необходимые импорты.
Разбор и генерация выполняются в браузере. Ввод не отправляется и не сохраняется.
Объявлений: 3 · типов указателей: 2
JSON в Go помогает подготовить модель по ответам API. Поместите несколько записей в массив, чтобы учесть отсутствующие поля, null и изменения типов.
Пример не доказывает обязательность полей и не описывает бизнес-правила. Сверьте результат с контрактом API и проверьте декодирование в проекте.
JSON в Go рассматривает все элементы в одной позиции массива. Поле, появившееся только во второй записи, тоже попадёт в модель. Для известного типа при null или отсутствии можно получить указатель.
Обычные целые токены в диапазоне int64 получают int64. Дроби, экспоненты и большие целые получают json.Number. Генератор не переводит их предварительно в числа JavaScript с плавающей точкой.
Объедините записи одного формата ответа в массив. Похожие объекты в разных свойствах получают независимые вложенные структуры, а не общий тип по совпадению формы.
Отключите распознавание дат, если нужен исходный текст. Без именованных вложенных типов получатся анонимные структуры. Отключение тегов лишает модель привязки к исходным ключам.
Автоматическая генерация ждёт 350 мс. Отключите её для кнопки генерации или используйте Ctrl/Cmd+Enter. Изменения блокируют копирование и скачивание до успешного обновления.
Этот конвертер JSON преобразует snake_case и camelCase в экспортируемые ASCII-имена. Сокращения вроде ID остаются прописными; совпадения разрешаются числовыми суффиксами. Включённые json-теги сохраняют поддерживаемые ключи.
Известный скаляр или структура получает указатель, если поле отсутствует или содержит null в примере. Срезы и отображения уже допускают nil. Только null даёт any; указатель не различает отсутствие и явный null.
Лишь обычные целые токены в знаковом 64-битном диапазоне становятся int64. Даже 1.0 и 1e3 дают json.Number: encoding/json не декодирует такую запись непосредственно в целое. Перед вычислениями проверяйте ошибки преобразования Number.
Полные корректные метки RFC3339 с дробной частью до девяти цифр могут стать time.Time. Все ненулевые строки в этой позиции должны подходить. Псевдонимы корневых типов сохраняют методы исходного типа.
Строки обычно дают string, логические значения — bool, простые целые в диапазоне — int64, прочие числа — json.Number. Корректные полные даты могут стать time.Time. Несовместимые значения дают any.
Имя преобразуется в UserID: оно начинается с прописной буквы и сохраняет известное сокращение ID. Числовые суффиксы устраняют совпадения. Теги связывают экспортируемые поля с поддерживаемыми исходными ключами.
Все записи в одной позиции участвуют в объединении. Поле, отсутствующее в части записей, по умолчанию получает указатель, если известен его скалярный или структурный тип. Срезы и отображения уже поддерживают nil.
Только null или несовместимые типы дают any. Известный скаляр или структура вместе с null может дать указатель. Он позволяет отличить nil от нулевого значения, но не отсутствие от явного null.
Да. JSON в Go строит черновик только по переданным примерам. Невидимые поля, будущие ответы и бизнес-ограничения остаются за пределами вывода. Проверьте модель реальными данными и тестами проекта.
Есть случай для улучшения вывода типов?
Используйте JSON в Go с несколькими записями, проверьте указатели, числа и даты, затем экспортируйте модель для тестирования.