UTILS.
100% w przeglądarce
🐹

JSON na strukturę Go

Konwertuj przykład JSON na typowane struktury Go z tagami json. Wykrywa int64, float64, bool, zagnieżdżone struktury i slice'y w przeglądarce.

wynik

O tym narzędziu

Wklej przykład JSON, a to narzędzie wygeneruje gotowe do użycia struktury Go, kompletne z tagami `json:"field"` dla każdego klucza. Wszystko działa lokalnie w Twojej przeglądarce, więc Twój JSON nigdy nie jest nigdzie wysyłany.

Generator wywołuje JSON.parse i rekurencyjnie przechodzi wynik: łańcuchy stają się string, wartości logiczne stają się bool, liczby całkowite stają się int64, a liczby z częścią dziesiętną stają się float64, null staje się interface{}, tablice stają się slice typu pierwszego elementu ([]interface{}, gdy pusta), a każdy obiekt staje się własną nazwaną zagnieżdżoną strukturą. Nazwy pól są konwertowane na eksportowany PascalCase (z popularnymi skrótami jak ID i URL zapisanymi wielkimi literami), a oryginalny klucz jest zachowywany w tagu json.

Użyj tego, aby zbudować modele Go z odpowiedzi API lub pliku konfiguracyjnego, a następnie ręcznie dopracuj typy tam, gdzie to potrzebne. Ponieważ JSON nie ma osobnego typu całkowitego, wartość taka jak 1.0 jest odczytywana jako liczba całkowita; dodaj część dziesiętną (1.5), jeśli chcesz float64.

Najczęściej zadawane pytania

Jak typowane są liczby?
Sparsowana wartość bez części ułamkowej staje się int64; wartość z częścią dziesiętną staje się float64. JSON nie odróżnia 1 od 1.0, więc obie odczytywane są jako int64.
Co dzieje się z zagnieżdżonymi obiektami i tablicami?
Każdy obiekt staje się osobną nazwaną strukturą; tablice stają się slice typu pierwszego elementu lub []interface{}, jeśli tablica jest pusta lub element jest null.
Czy nazwy pól są poprawnym Go?
Klucze są konwertowane na eksportowany PascalCase, a oryginalny klucz jest zachowywany w tagu json, więc JSON konwertuje się w obie strony poprawnie nawet dla nazw jak user_id lub first-name.
Czy mój JSON jest wysyłany na serwer?
Nie. Parsowanie i generowanie kodu odbywają się w całości w Twojej przeglądarce; nic nie jest wysyłane ani przechowywane.

Więcej narzędzi