Zamiana próbki JSON na struktury Go z tagami json, int lub float64, wskaźnikami i omitempty
Działa w przeglądarce. Wpisane dane nie są nigdzie wysyłane. Sprawdzono 16 października 2026.Wystarczy wkleić próbkę JSON, aby otrzymać typy struct w Go z tagami json, gotowe dla json.Unmarshal. Liczby całkowite stają się int, powyżej 2 147 483 647 int64, a każda wartość dziesiętna zmienia pole na float64; wartość czasem równa null staje się wskaźnikiem, a klucze brakujące w niektórych obiektach dostają omitempty.
Ta strona została przetłumaczona maszynowo z angielskiego oryginału. Tłumaczenie nie zostało jeszcze sprawdzone przez człowieka, dlatego wiążąca jest wersja angielska. Przeczytaj angielski oryginał
Wklej próbkę JSON, na przykład odpowiedź API, do lewego pola.
Typy Go pojawiają się w trakcie pisania: jedna struktura na obiekt, z tagami json i nazwami w stylu Go, np. UserID.
Wybierz Zagnieżdżone struktury inline lub omitempty dla każdego pola, jeśli są potrzebne, i ustaw nazwę typu głównego.
Kliknij Kopiuj albo Pobierz, aby zapisać plik .go, i dodaj własną linię package.
Go dekoduje JSON do struktur, a każde pole potrzebuje właściwego typu i tagu json:"..." z nazwą klucza. Konwerter pisze takie typy na podstawie próbki, więc 200-wierszowa odpowiedź API staje się poprawnym kodem Go po jednym wklejeniu.
Jak dobierane są typy.
| Wartość JSON | Typ Go |
|---|---|
| "text" | string |
| true / false | bool |
| 42 (tylko liczby całkowite) | int lub int64 powyżej 32 bitów |
| 4.5 (wystąpiła jakakolwiek część dziesiętna) | float64 |
| null oraz inny typ | wskaźnik, np. *string |
| tylko null lub różne rodzaje | any |
| [ ... ] | slice, np. []string |
| { ... } | nazwana struktura lub struktura inline |
Tablice obiektów. Wszystkie obiekty tablicy są łączone w jedną strukturę, więc pole obecne tylko w niektórych nadal się w niej znajduje, z ,omitempty w tagu. Dwa obiekty o dokładnie tych samych kluczach i typach współdzielą jedną nazwę typu.
Nazwy. Klucze stają się eksportowanymi nazwami w stylu Go: user_id staje się UserID, avatar_url AvatarURL, według listy skrótowców golint. Klucz zaczynający się od cyfry dostaje N na początku; dwa klucze dające tę samą nazwę są numerowane. Klucz ze znakami, których tag nie może zawierać, np. przecinkiem, jest oznaczany komentarzem, bo encoding/json by go nie dopasował.
Opcje. Zagnieżdżone struktury inline zapisują jeden typ z anonimowymi strukturami w środku, co pasuje do jednorazowej odpowiedzi. omitempty dla każdego pola pasuje do struktur, które są też serializowane. Typ główny nazywa się Root, chyba że zostanie nazwany inaczej.
Każdy wynik sprawdzono, odczytując kod Go z powrotem i dekodując próbkę według reguł encoding/json. Nic, co zostanie wklejone, nie opuszcza przeglądarki.
Po wklejeniu próbki JSON do konwertera obok pojawia się struktura Go, z tagiem json przy każdym polu i zagnieżdżonymi obiektami jako osobnymi typami. Należy skopiować ją do pakietu i dekodować przez json.Unmarshal(data, &v), gdzie v jest zmienną typu głównego.
Typ int pasuje, gdy każda wartość w próbce jest liczbą całkowitą, a float64, gdy którakolwiek ma część dziesiętną, bo encoding/json odmawia wpisania 4.5 do int. Konwerter wybiera osobno dla każdego pola i stosuje int64, gdy liczba całkowita przekracza 2 147 483 647.
Pole widziane zarówno jako null, jak i z wartością staje się wskaźnikiem, np. *string, więc nil oznacza null, a pusty ciąg pozostaje czymś innym. Pole, które zawsze było null, staje się any, bo próbka nie mówi, co zawierałoby w innym przypadku.
Z omitempty json.Marshal pomija pole, gdy zawiera wartość zerową: pusty ciąg, 0, false, nil lub pusty slice. Konwerter dodaje go do kluczy brakujących w niektórych obiektach tablicy, a przełącznik dodaje go do każdego pola.
Styl Go, sprawdzany przez golint i większość linterów, zapisuje skrótowce wielkimi literami: ID, URL, HTTP, API, JSON i około czterdziestu innych. Tag json zachowuje oryginalny klucz, user_id lub userId, więc dekodowanie nadal dokładnie pasuje do API.
Nie. Konwersja działa w przeglądarce bez żadnego żądania do serwera, a JSON nie jest zapisywany, więc odpowiedzi API z tokenami lub danymi osobowymi zostają na urządzeniu. Po zamknięciu karty nic nie pozostaje.
Stawki i przepisy się zmieniają; przed oparciem się na danej liczbie należy sprawdzić źródło.
Nadal coś nie działa? Zapytaj o narzędzie Konwerter JSON na struktury Go a odpowiedzieć może każdy, kto zna odpowiedź. Konto nie jest potrzebne.