JSON in Java-Klassen umwandeln
Erzeugt Java-Klassen aus JSON: Die Seite führt json_typegen (WebAssembly) im Kotlin-Modus aus und schreibt jede data class in eine Java-Klasse mit privaten Feldern, einem Konstruktor mit allen Argumenten, Gettern und Settern um.
Ein POJO erstellen, um eine REST-Antwort mit Jackson zu deserialisieren.
Wann sie hilft
- Ein POJO erstellen, um eine REST-Antwort mit Jackson zu deserialisieren.
- DTO-Klassen für einen Spring-Controller aus einem Beispiel-Payload skizzieren.
Anwendung
- Füge ein JSON-Objekt oder -Array in den linken Editor ein.
- Lies die Klassen: Die Root-Klasse heißt Root, und verschachtelte Objekte werden zu eigenen Klassen, die nach ihrem Schlüssel benannt sind.
- Kopiere sie in separate .java-Dateien (Imports für List und Jackson sind enthalten) und passe die Typen bei Bedarf an.
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 und Einschränkungen
Die Erzeugung läuft im Browser mit WebAssembly; es gibt keine Einstellungen.
snake_case-Schlüssel werden zu camelCase-Feldern mit Jackson-@JsonProperty; der Jackson-Import und java.util.List werden bei Verwendung importiert.
Zahlen werden auf Long oder Double abgebildet, Booleans auf Boolean; boolesche Getter verwenden get, nicht is.
Ein null-Wert wird als Object typisiert und ein Array aus nulls als List<?>. Ersetze sie durch konkrete Typen, sobald du die echten Daten kennst.
FAQ
Kann ich ein JSON-Array auf oberster Ebene umwandeln?
Ja. Die Root wird zu einer Wrapper-Klasse Root mit einem Feld List<Root2>, und die Array-Elemente werden zur Klasse Root2.
Werden optionale Felder behandelt?
Schlüssel, die in einigen Array-Elementen fehlen, werden erkannt, aber die Java-Ausgabe verwirft die Optional-Markierung, sodass jedes Feld ein einfacher nullable Wrapper-Typ ist.
Werden Lombok-Annotationen oder Records erzeugt?
Nein. Es werden einfache Klassen mit expliziten Konstruktoren, Gettern und Settern geschrieben.
Wie werden null-Werte typisiert?
Ein Feld, das im Beispiel null ist, wird zu Object (private Object note;), weil sich kein konkreter Typ ableiten lässt. Gib ein Beispiel mit einem echten Wert an, um String, Long oder eine verschachtelte Klasse zu erhalten.