Przejdź do treści

JSON na strukturę Go

Konwertuj przykład JSON na definicje struktur Go z wnioskowanymi typami i tagami.

Wejście
Wynik

JSON na strukturę Go

Wklej przykład JSON, a to narzędzie wygeneruje pasujące definicje struktur Go ze znacznikami json. Wnioskuje int, float64, string, bool i null dla każdego pola, tworzy nazwane lub osadzone struktury dla zagnieżdżonych obiektów i określa typy wycinków dla tablic — w tym wycinków obiektów, które mają swoją własną strukturę wielokrotnego użytku.

Opcje kształtują wygenerowany kod. Nazwij strukturę główną samodzielnie lub pozwól narzędziu, aby ją wnioskował. Wybierz, jak będą napisane znaczniki — zachowaj oryginalny klucz lub konwertuj go na snake_case lub camelCase niezależnie od tego, jak została nazwana oryginalna nazwa pola. Włącz "Dodaj omitempty", aby dodać do każdego znacznika, i "Wskaźniki dla pól opcjonalnych", aby oznaczić pola brakujące lub null w częściach przykładu typem wskaźnika. Gdy obiekty tablicy mają nieco inne pola, "Scalaj kształty elementów tablicy" łączy je w jedną strukturę z dodatkowymi polami oznaczonymi jako opcjonalne zamiast rezygnacji z typu elementu. Dla wartości, których narzędzie nie może określić, wybierz interface{}, alias any lub json.RawMessage do odroczenia dekodowania.

To jest krok przed napisaniem klienta API lub ładowarki config w Go: wklej rzeczywistą odpowiedź lub przykład config i uzyskaj strukturę początkową zamiast ręcznego wpisywania nazw pól i znaczników. Zagnieżdżone struktury mogą pozostać jako osobne nazwane typy do ponownego użytku w innym miejscu pakietu lub być renderowane osadzone, gdy kształt jest używany tylko raz. Dla pól, których znacznik już nie odpowiada oryginalnemu kluczowi JSON, dostępny jest komentarz z oryginalnym kluczem.

Wszystko działa lokalnie w przeglądarce — JSON, który wklejasz, który może zawierać rzeczywiste odpowiedzi API lub wewnętrzną konfigurację, nigdy nie jest przesyłany. Skopiuj wynik, pobierz go jako plik .txt lub przenieś dane wyjściowe z powrotem do wejścia, aby ulepszić przykład i ponownie wygenerować.

Częste pytania

Czy obsługuje zagnieżdżone obiekty i tablice?
Tak. Zagnieżdżone obiekty stają się swoją własną nazwą strukturę (lub osadzoną strukturę anonimową, jeśli ją włączysz), tablice stają się wycinkami, a wycinek obiektów ponownie używa jedną strukturę, gdy każdy element ma taki sam kształt.
Co się stanie, gdy obiekty w tablicy nie mają wszystkich tych samych pól?
Przy "Scalaj kształty elementów tablicy" włączone (domyślnie), narzędzie łączy każde pole, które widziało w elementach, w jedną strukturę, oznaczając pola, które brakuje w niektórych elementach, jako opcjonalne. Wyłącz to, a narzędzie powraca do dynamicznego typu elementu.
Czy mogę kontrolować, jak są nazwane znaczniki JSON?
Tak, za pomocą opcji formatu znacznika JSON: zachowaj oryginalny klucz dokładnie tak, jak pojawia się w przykładzie, lub konwertuj każdy klucz na snake_case lub camelCase.
Jaki typ otrzymuję dla pola, którego narzędzie nie może wnioskować?
interface{}, alias any lub json.RawMessage, w zależności od wybranej opcji — RawMessage jest przydatne, gdy chcesz samodzielnie zdekodować to pole później.
Czy mój JSON jest gdzieś wysyłany?
Nie. Generowanie struktur działa całkowicie w przeglądarce — JSON, który wklejasz, nigdy nie opuszcza Twojego urządzenia.