DT Dev Tools

Konwerter JSON na Go — Generator struktur

Konwertuj JSON na struktury Go online z tagami json, omitempty, wskaźnikami dla pól opcjonalnych i funkcjami unmarshal. Za darmo, szybko i prywatnie w przeglądarce.

🔒 Działa całkowicie w Twojej przeglądarce — nic nie jest przesyłane

Reklama

Generuj struktury Go z JSON

Ręczne pisanie struktur Go dla dużej odpowiedzi API jest powolne i podatne na błędy. Ten konwerter JSON na Go robi to natychmiast: wklej przykład JSON, a wygeneruje eksportowane typy struct z poprawnie zapisanymi nazwami pól i tagami json, które mapują każde pole z powrotem na jego oryginalny klucz. Zagnieżdżone obiekty stają się osobnymi nazwanymi strukturami, tablice — slice’ami, liczby całkowite i zmiennoprzecinkowe są rozróżniane jako int64 i float64, a znaczniki czasu ISO 8601 są rozpoznawane jako time.Time. Wynik jest gotowy dla encoding/json bez dalszej edycji.

Narzędzie działa dzięki quicktype, który analizuje każdy element każdej tablicy, zanim wybierze typ. Jeśli jeden element listy ma pole, którego brakuje w pozostałych, pole staje się wskaźnikiem, dzięki czemu wartość zerowa i brak wartości pozostają rozróżnialne — szczegół, który prostsze konwertery jednoprzebiegowe często pomijają.

Opcje istotne w Go

Ustaw nazwę package, aby plik się kompilował tam, gdzie go umieścisz. Włącz omitempty, jeśli serializujesz te struktury z powrotem do JSON i chcesz, aby nieobecne pola opcjonalne pozostały nieobecne. Domyślnie generator dodaje małe funkcje pomocnicze Unmarshal… i Marshal wokół typu głównego; zaznacz Structs only, jeśli wolisz samodzielnie wywoływać json.Unmarshal i potrzebujesz wyłącznie typów. Zmień nazwę struktury głównej z Root na nazwę domenową, jakiej chcesz — na przykład Repository lub WebhookEvent.

Jak uzyskać najlepszy wynik

Podaj konwerterowi reprezentatywny przykład: tablicę z kilkoma elementami, wypełnione pola opcjonalne i zagnieżdżone obiekty, które nie są puste. Puste tablice i wartości null nie dają wnioskowaniu żadnych informacji i powodują powrót do interface{}. Po wklejeniu kodu uruchom gofmt, sprawdź typy liczbowe tam, gdzie przykład może nie pokazywać pełnego zakresu, i zastąp ogólne ciągi znaków własnymi typami tam, gdzie Twoje API dokumentuje stałe wartości. Ponieważ całe przetwarzanie odbywa się w przeglądarce, dane wewnętrzne ani dane klientów nigdy nie opuszczają Twojego komputera.

Jak używać

  1. Wklej JSONWklej odpowiedź API lub dowolny dokument JSON albo wczytaj przykład.
  2. Wybierz opcjeUstaw nazwę struktury głównej i pakiet oraz zdecyduj o omitempty i funkcjach pomocniczych.
  3. Skopiuj strukturySkopiuj kod Go lub pobierz plik .go i jak zwykle uruchom gofmt.

Najczęściej zadawane pytania

Czy dodaje tagi json struct?
Tak. Każde pole dostaje tag `json:"key"` zachowujący oryginalny klucz JSON, a ,omitempty do pól opcjonalnych możesz dodać jednym polem wyboru.
Jak obsługiwane są pola opcjonalne i null?
Pola, których brakuje lub które mają wartość null w niektórych przykładach, stają się typami wskaźnikowymi, np. *string, dzięki czemu odróżnisz brak wartości od wartości zerowej.
Do czego służą funkcje pomocnicze?
Domyślnie wynik zawiera funkcje pomocnicze UnmarshalRoot i Marshal. Zaznacz Structs only, aby otrzymać same deklaracje typów.
Czy mój JSON jest wysyłany na serwer?
Nie. Konwersja działa w Twojej przeglądarce dzięki quicktype skompilowanemu do JavaScriptu; nic nie jest przesyłane.
Reklama