Přeskočit na obsah

JSON na Java třídu

Převeďte vzor JSON na Java třídy s automaticky odvozenými vnořenými typy a generickými seznamy.

Vstup
Výstup

JSON na Java třídu

Vložte vzor JSON a tento nástroj vygeneruje Java třídy potřebné k jeho reprezentaci, přičemž odvozuje typy polí, typy vnořených objektů a typy prvků generických seznamů přímo z poskytnutých hodnot. Je určen vývojářům backendu, kteří obdrží odpověď API nebo konfigurační soubor a potřebují typovaný model k deserializaci bez ručního psaní jednotlivých polí.

Zvolte si, jak jsou pole anotována: bez anotací, s Jackson @JsonProperty nebo s Gson @SerializedName, přičemž každá nese původní klíč JSON, takže serializace stále odpovídá i po přejmenování pole na camelCase. Vypněte gettery a settery pro jednoduchou třídu s veřejnými poli, nebo je nahraďte Lombok @Data nebo Java recordem, kde komponenty nahrazují pole a accessory. Wrapper typy (Integer, Boolean, Double) lze vynucovat všude namísto primitivních typů; nástroj vždy používá wrapper tam, kde je hodnota skutečně volitelná, protože primitivní typ nemůže nikdy obsahovat null. Deklarace balíčku se přidá, pokud je poskytnuta, a vnořené objekty se vykreslit jako staticky vnořené třídy v jednom souboru nebo jako samostatné top-level třídy.

Když se stejný tvar objeví vícekrát — opakované objekty v poli nebo dvě sousední pole se stejnou strukturou — nástroj znovu použije jednu vygenerovanou třídu místo duplikování. Pole pozorovaná s různými tvary v poli jsou sloučena do jedné třídy, přičemž pole chybějící v některých prvkách jsou označena jako volitelná. Čísla zůstávají jako int tam, kde se vejdou do 32bitového rozsahu, a rozšiřují se na long nebo double podle potřeby; klíč JSON, který nemůže být Java identifikátor, jako je emoji, se vrací na bezpečné vygenerované jméno.

Všechno běží lokálně ve vašem prohlížeči — vzor JSON nikdy neopustí prohlížeč a není přenášen na server. Zkopírujte vygenerované třídy do svého projektu, stáhněte je jako soubor .txt, nebo pošlete výstup zpět na vstup a spusťte na něm další nástroj.

Časté dotazy

Zpracovává vnořené objekty a pole?
Ano. Vnořené objekty se stanou svou vlastní třídou (vnořená nebo samostatná, v závislosti na možnosti rozložení třídy) a pole se stanou generickým java.util.List odvozeného typu prvku.
Co se stane s polem, které chybí v některých vzorových objektech?
Je označeno jako volitelné a pokud se jedná o primitivní typ, je upgradováno na jeho wrapper typ (Integer, Boolean, Double), takže pole může legitimně obsahovat null.
Mohu místo ručních getterů a setterů používat Lombok nebo Java recordy?
Ano. Zapněte Lombok @Data pro třídu anotovanou @Data a private pole, nebo Použít Java record pro vygenerování záznamu s poli jako komponenty — oba nahrazují ručně psané accessory.
Jak se volí názvy polí, když klíč JSON není platným Java identifikátorem?
Klíč se převede na camelCase; klíč, který vede k prázdnému nebo název kolidujícímu s klíčovým slovem, se vrátí na bezpečné vygenerované jméno jako field nebo klíčové slovo s koncovým podtržítkem.
Je můj JSON někde nahrán?
Ne. Generování tříd běží zcela ve vašem prohlížeči — váš vzor JSON není nikdy odeslán na server.