DT Dev Tools

Конвертер JSON у Go struct — генератор структур

Перетворіть JSON на структури Go онлайн: теги json, omitempty, вказівники для необов'язкових полів і допоміжні функції unmarshal. Безкоштовно й приватно в браузері.

🔒 Працює повністю у вашому браузері — нічого не завантажується

Реклама

Генеруйте структури Go з JSON

Писати структури Go вручну для великої відповіді API довго й легко помилитися. Цей конвертер JSON у Go робить це миттєво: вставте зразок JSON — і він згенерує експортовані типи struct із правильним регістром назв полів і тегами json, що зіставляють кожне поле з оригінальним ключем. Вкладені об'єкти стають окремими іменованими структурами, масиви — зрізами, цілі та дробові числа розрізняються як int64 і float64, а позначки часу ISO 8601 розпізнаються як time.Time. Результат готовий до використання з encoding/json без додаткових правок.

Інструмент працює на quicktype, який переглядає кожен елемент кожного масиву, перш ніж обрати тип. Якщо в одному елементі списку є поле, якого бракує в інших, це поле стає вказівником, і нульове значення та відсутнє значення залишаються розрізнюваними — деталь, яку конвертери з одним проходом часто втрачають.

Параметри, важливі для Go

Задайте назву package, щоб файл компілювався там, куди ви його покладете. Увімкніть omitempty, коли ви також серіалізуєте ці структури назад у JSON і хочете, щоб відсутні необов'язкові поля залишалися відсутніми. За замовчуванням генератор додає невеликі допоміжні функції Unmarshal… і Marshal навколо кореневого типу; позначте Structs only, якщо ви вважаєте за краще самостійно викликати json.Unmarshal і потребуєте лише типів. Перейменуйте кореневу структуру з Root на потрібну доменну назву — наприклад, Repository або WebhookEvent.

Як отримати найкращий результат

Надайте конвертеру репрезентативний зразок: масив із кількома елементами, заповнені необов'язкові поля та вкладені об'єкти з даними, а не порожні. Порожні масиви та значення null не дають виведенню типів нічого для роботи, і воно повертається до interface{}. Після вставки коду запустіть gofmt, перегляньте числові типи там, де зразок може не показувати повного діапазону, і замініть універсальні рядки власними типами, де ваш API документує фіксовані значення. Оскільки вся обробка відбувається у вашому браузері, внутрішні чи клієнтські дані ніколи не залишають ваш комп'ютер.

Як користуватися

  1. Вставте JSONВставте відповідь API або будь-який документ JSON чи завантажте зразок.
  2. Оберіть параметриЗадайте назву кореневої структури й package та вирішіть, чи потрібні omitempty і допоміжні функції.
  3. Скопіюйте структуриСкопіюйте код Go або завантажте файл .go і запустіть gofmt, як зазвичай.

Часті запитання

Чи додає він теги json для struct?
Так. Кожне поле отримує тег `json:"key"`, що зберігає оригінальний ключ JSON, а ,omitempty до необов'язкових полів можна додати одним прапорцем.
Як обробляються необов'язкові поля та null?
Поля, яких бракує або що дорівнюють null у деяких зразках, стають типами-вказівниками, наприклад *string, тож відсутнє значення можна відрізнити від нульового.
Що роблять допоміжні функції?
За замовчуванням вивід містить допоміжні функції UnmarshalRoot і Marshal. Позначте Structs only, щоб отримати лише оголошення типів.
Чи надсилається мій JSON на сервер?
Ні. Конвертація виконується у вашому браузері за допомогою quicktype, скомпільованого в JavaScript; нічого не завантажується.
Реклама