Přeskočit na obsah

JSON na Go strukturu

Převede ukázku JSON na definice Go struktur s odvozovanými typy a tagy.

Vstup
Výstup

JSON na Go strukturu

Vložte ukázku JSON a tento nástroj vygeneruje odpovídající definice Go struktur se značkami json. Odvodí int, float64, string, bool a null pro každé pole, vytvoří pojmenované nebo vložené struktury pro vnořené objekty a určí typy řezů pro pole — včetně řezů objektů, které mají svou vlastní opakovaně použitelnou strukturu.

Možnosti tvoří vygenerovaný kód. Pojmenujte kořenovou strukturu sami, nebo nechejte nástroj, aby ji odvodil. Vyberte si, jak budou značky zapsány — ponechejte původní klíč, nebo ho převeďte na snake_case nebo camelCase bez ohledu na to, jak byl původní název pole. Zapněte "Přidat omitempty" a přidá se ke každé značce, a "Ukazatele pro volitelná pole" označí pole chybějící nebo null v částech ukázky se značkou ukazatele. Když objekty pole mají mírně odlišná pole, "Sloučit tvary prvků pole" je spojí do jedné struktury s dodatečnými poli označenými jako volitelné místo vzdání se typu prvku. Pro hodnoty, které nemůže nástroj určit, vyberte interface{}, alias any nebo json.RawMessage na odložené dekódování.

Toto je krok před napsáním klienta API nebo zásuvky config v Go: vložte skutečnou odpověď nebo ukázku config a získáte počáteční strukturu místo ručního zadávání názvů polí a značek. Vnořené struktury mohou zůstat jako samostatné pojmenované typy k opakovanému použití jinde v balíku, nebo se vykreslit vložené, když se tvar používá pouze jednou. Pro pole, jejichž značka již neodpovídá původnímu klíči JSON, je k dispozici komentář s původním klíčem.

Všechno běží lokálně ve vašem prohlížeči — JSON, který vložíte, který by mohl obsahovat skutečné odpovědi API nebo interní config, se nikdy nenahraje. Zkopírujte výsledek, stáhněte si jej jako soubor .txt nebo přesuňte výstup zpět do vstupu, abyste ukázku upravili a opětovně vygenerovali.

Časté dotazy

Zvládá vnořené objekty a pole?
Ano. Vnořené objekty se stanou svou vlastní pojmenovanou strukturou (nebo vloženou anonymní, pokud ji povolíte), pole se stanou řezy a řez objektů opakovaně použije jednu strukturu, když každý prvek sdílí stejný tvar.
Co se stane, když objekty pole nemají všechna stejná pole?
Se "Sloučit tvary prvků pole" zapnuté (výchozí), nástroj spojí každé pole, které viděl v prvních, do jedné struktury, přičemž pole, které chybělo v některých prvcích, označí jako volitelné. Vypněte to a nástroj se vrátí k dynamickému typu prvku.
Mohu kontrolovat, jak jsou pojmenované JSON značky?
Ano, s volbou formátu JSON značky: ponechejte původní klíč přesně tak, jak se vyskytuje v ukázce, nebo převeďte každý klíč na snake_case nebo camelCase.
Jaký typ dostanu pro pole, které nástroj nemůže odvodit?
interface{}, alias any nebo json.RawMessage, v závislosti na volbě, kterou vyberete — RawMessage je užitečné, když chcete toto pole dekódovat později sami.
Je můj JSON někde nahrán?
Ne. Generování struktur běží zcela ve vašem prohlížeči — JSON, který vložíte, nikdy neopustí vaše zařízení.