UTILS.
100% у браузері
🐹

JSON у структури Go

Перетворіть зразок JSON на типізовані структури Go з тегами json. Визначає int64, float64, bool, вкладені структури й зрізи у вашому браузері.

результат

Про цей інструмент

Вставте зразок JSON, і цей інструмент згенерує готові до використання структури Go, повні з тегами `json:"field"` для кожного ключа. Усе працює локально у вашому браузері, тож ваш JSON ніколи нікуди не завантажується.

Генератор викликає JSON.parse і рекурсивно обходить результат: рядки стають string, булеві значення стають bool, цілі числа стають int64, а числа з десятковою частиною стають float64, null стає interface{}, масиви стають зрізом типу першого елемента ([]interface{}, коли порожні), а кожен об'єкт стає власною іменованою вкладеною структурою. Імена полів перетворюються на експортований PascalCase (із поширеними ініціалізмами як-от ID та URL у верхньому регістрі), тоді як оригінальний ключ зберігається в тезі json.

Використовуйте це, щоб швидко створити моделі Go з відповіді API чи файлу конфігурації, а тоді вручну впорядкувати типи, де потрібно. Оскільки JSON не має окремого цілочисельного типу, значення на кшталт 1.0 читається як ціле; додайте десяткову частину (1.5), якщо хочете float64.

Поширені запитання

Як типізуються числа?
Розібране значення без дробової частини стає int64; значення з десятковою частиною стає float64. JSON не може відрізнити 1 від 1.0, тож обидва читаються як int64.
Що відбувається з вкладеними об'єктами й масивами?
Кожен об'єкт стає окремою іменованою структурою; масиви стають зрізом типу першого елемента, або []interface{}, якщо масив порожній чи елемент null.
Чи є імена полів дійсними для Go?
Ключі перетворюються на експортований PascalCase, а оригінальний ключ зберігається в тезі json, тож JSON коректно проходить туди й назад навіть для імен на кшталт user_id чи first-name.
Чи надсилається мій JSON на сервер?
Ні. Розбір і генерація коду відбуваються повністю у вашому браузері; нічого не завантажується й не зберігається.

Більше інструментів