Ga naar inhoud
100% lokaal

JSON naar Java class

Zet een JSON-voorbeeld om in Java classes, met automatisch afgeleide geneste typen en generieke lijsten.

Invoer
Uitvoer

JSON naar Java class

Plak een JSON-voorbeeld en dit tool genereert de Java classes die nodig zijn om het weer te geven. Het leidt veldtypen, geneste objecttypen en generieke lijstelemententypen direct af uit de waarden die je opgeeft. Het is gebouwd voor backend-ontwikkelaars die een API-respons of configuratiebestand ontvangen en een getypeerd model nodig hebben om het in te deserialiseren, zonder elk veld handmatig te schrijven.

Kies hoe velden worden geannoteerd: geen, Jacksons @JsonProperty of Gsons @SerializedName, elk draagt de oorspronkelijke JSON-sleutel met zich mee zodat serialisatie nog steeds overeenkomt nadat een veld is hernoemd naar camelCase. Schakel getters en setters uit voor een eenvoudige class met openbare velden, of vervang ze door Lomboks @Data of een Java record, waar componenten de plaats van velden en accessors innemen. Wrapper types (Integer, Boolean, Double) kunnen overal in plaats van primitieven worden afgedwongen; het tool gebruikt altijd een wrapper waar een waarde echt optioneel is, omdat een primitief nooit null kan bevatten. Een packagedeklaratie wordt toegevoegd wanneer opgegeven, en geneste objecten worden weergegeven als statisch geneste classes in één bestand of als afzonderlijke top-level classes.

Wanneer dezelfde vorm meer dan eens voorkomt – herhaalde objecten in een array of twee sibling-velden met identieke structuur – hergebruikt het tool een enkele gegenereerde class in plaats van deze te dupliceren. Velden die over een array heen in verschillende vormen worden waargenomen, worden samengevoegd in één class, met velden die ontbreken in sommige elementen als optioneel gemarkeerd. Nummers blijven int waar ze in een 32-bits bereik passen en verbreden naar long of double indien nodig; een JSON-sleutel die geen geldige Java-identifier is, zoals een emoji, valt terug op een veilige gegenereerde naam.

Alles draait lokaal in je browser – je JSON-voorbeeld wordt nooit geüpload of naar een server verzonden. Kopieer de gegenereerde classes naar je project, download ze als .txt-bestand, of stuur de uitvoer terug naar de invoer om er een ander tool op uit te voeren.

FAQ

Verwerkt het geneste objecten en arrays?
Ja. Geneste objecten worden hun eigen class (genest of apart, afhankelijk van de class layout optie) en arrays worden een generieke java.util.List van het afgeleide elementtype.
Wat gebeurt er met een veld dat ontbreekt in sommige voorbeeldobjecten?
Het wordt gemarkeerd als optioneel en, als het een primitief is, bijgewerkt naar het wrapper-type (Integer, Boolean, Double) zodat het veld legitiem null kan zijn.
Kan ik Lombok of Java records gebruiken in plaats van handmatige getters en setters?
Ja. Zet Lombok @Data aan voor een class geannoteerd met @Data en private velden, of gebruik een Java record om een record te genereren met de velden als componenten – beide vervangen handgeschreven accessors.
Hoe worden veldnamen gekozen als een JSON-sleutel geen geldige Java-identifier is?
De sleutel wordt geconverteerd naar camelCase; een sleutel die resulteert in een lege of met een trefwoord botsende naam valt terug op een veilige gegenereerde naam zoals field of een trefwoord met een trailing underscore.
Wordt mijn JSON ergens geüpload?
Nee. Class generatie wordt volledig in je browser uitgevoerd – je JSON-voorbeeld wordt nooit naar een server gestuurd.