Конвертер 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 документує фіксовані значення. Оскільки вся обробка відбувається у вашому браузері, внутрішні чи клієнтські дані ніколи не залишають ваш комп'ютер.
Як користуватися
- Вставте JSONВставте відповідь API або будь-який документ JSON чи завантажте зразок.
- Оберіть параметриЗадайте назву кореневої структури й package та вирішіть, чи потрібні omitempty і допоміжні функції.
- Скопіюйте структуриСкопіюйте код Go або завантажте файл .go і запустіть gofmt, як зазвичай.
Часті запитання
Чи додає він теги json для struct?
`json:"key"`, що зберігає оригінальний ключ JSON, а ,omitempty до необов'язкових полів можна додати одним прапорцем.Як обробляються необов'язкові поля та null?
*string, тож відсутнє значення можна відрізнити від нульового.Що роблять допоміжні функції?
UnmarshalRoot і Marshal. Позначте Structs only, щоб отримати лише оголошення типів.