JSON naar Java-klassentransformator — Numio
Genereert Java-klassen uit JSON: de pagina voert json_typegen (WebAssembly) uit in de Kotlin-modus en herschrijft elke gegevensklasse in een Java-klasse met privévelden, een all-args-constructor, getters en setters.
Een POJO maken om een REST-antwoord te deserialiseren met Jackson.
Wanneer gebruik je dit?
- Een POJO maken om een REST-antwoord te deserialiseren met Jackson.
- DTO-klassen schetsen voor een Spring-controller op basis van een voorbeeldpayload.
Hoe werkt het
- Plak een JSON-object of array in de linkereditor.
- Lees de klassen: de root is Root en geneste objecten worden afzonderlijke klassen, genoemd naar hun sleutel.
- Kopieer ze naar afzonderlijke .java-bestanden (imports voor List en Jackson zijn inbegrepen) en pas de typen indien nodig aan.
JSON
{
"id": 42,
"user_name": "ada",
"active": true,
"tags": ["admin", "editor"]
}Java-klassen
import java.util.List;
import com.fasterxml.jackson.annotation.JsonProperty;
public class Root {
private Long id;
@JsonProperty("user_name")
private String userName;
private Boolean active;
private List<String> tags;
public Root(Long id, String userName, Boolean active, List<String> tags) {
this.id = id;
this.userName = userName;
this.active = active;
this.tags = tags;
}
public Long getId() {
return this.id;
}
…Details en beperkingen
Generatie draait in de browser met WebAssembly; er zijn geen instellingen.
snake_case-sleutels worden camelCase-velden met Jackson @JsonProperty; de Jackson-import en java.util.List worden geïmporteerd wanneer ze worden gebruikt.
Getallen worden toegewezen aan Long of Double en booleans aan Boolean; Booleaanse getters gebruiken get, niet is.
Een null-waarde wordt getypt als Object en een array met null-waarden als List<?>. Vervang ze door concrete typen zodra u de echte gegevens kent.
FAQ
Kan ik een JSON-array in de root converteren?
Ja. De root wordt een wrapper-klasse Root met een List<Root2>-veld, en de array-elementen worden klasse Root2.
Worden optionele velden afgehandeld?
Sleutels die ontbreken in sommige array-elementen worden gedetecteerd, maar de Java-uitvoer verwijdert de optionele markering, dus elk veld is een eenvoudig null-wrappertype.
Genereert het Lombok-annotaties of -records?
Nee. Het schrijft eenvoudige klassen met expliciete constructors, getters en setters.
Hoe worden nulwaarden getypt?
Een veld dat nul is in het voorbeeld wordt Object (privéobject, opmerking;), omdat er geen concreet type kan worden afgeleid. Geef een voorbeeld met een echte waarde om String, Long of een geneste klasse te krijgen.