← Tools-Übersicht100% Client-seitig

JSON zu Java Record, Lombok & Jackson POJO Generator

Erzeugt idiomatische Java Records, Lombok @Data-Klassen oder Standard-Java-POJOs mit Jackson @JsonProperty-Annotationen und Typinferenz aus JSON.

649 chars
Generierte Java-Klassen
package com.example.model;

import com.fasterxml.jackson.annotation.JsonProperty;
import java.time.Instant;
import java.time.LocalDate;
import java.util.List;
import java.util.UUID;

public record Owner(
    @JsonProperty("user_id")
    Integer userId,

    @JsonProperty("full_name")
    String fullName,

    @JsonProperty("email_address")
    String emailAddress,

    @JsonProperty("verified")
    Boolean verified
) {}

public record Metric(
    @JsonProperty("metric_key")
    String metricKey,

    @JsonProperty("metric_value")
    Double metricValue,

    @JsonProperty("alert_threshold")
    Integer alertThreshold
) {}

public record ApiResponse(
    @JsonProperty("id")
    UUID id,

    @JsonProperty("name")
    String name,

    @JsonProperty("is_active")
    Boolean isActive,

    @JsonProperty("max_concurrency")
    Integer maxConcurrency,

    @JsonProperty("service_fee")
    Double serviceFee,

    @JsonProperty("created_at")
    Instant createdAt,

    @JsonProperty("deployment_date")
    LocalDate deploymentDate,

    @JsonProperty("tags")
    List<String> tags,

    @JsonProperty("owner")
    Owner owner,

    @JsonProperty("metrics")
    List<Metric> metrics
) {}

Ziel-Klassenstil

3

Anzahl generierter Klassen

17

Anzahl inferierter Felder

1.2 KB

Technische Referenz & Architektur-Leitfaden

JSON zu Java Record, Lombok & Jackson POJO Generator — Referenz-Leitfaden

Erzeugt idiomatische Java Records, Lombok @Data-Klassen oder Standard-Java-POJOs mit Jackson @JsonProperty-Annotationen und Typinferenz aus JSON.

Wichtige Parameter & Steuerelemente

targetStructureenum ('RECORD' | 'LOMBOK' | 'STANDARD_POJO')

Bestimmt den Ziel-Klassenstil: unveränderliche Java 16+ Records, veränderliche/unveränderliche Lombok-annotierte Klassen (@Data, @Builder, @Value) oder klassische JavaBeans mit expliziten Gettern/Settern.

propertyNamingStrategyenum ('CAMEL_CASE' | 'SNAKE_CASE' | 'KEBAB_CASE' | 'EXACT')

Legt fest, wie JSON-Schlüssel auf Java-Felder abgebildet werden und ob Jackson-Annotationen (@JsonProperty, @JsonNaming) generiert werden, um abweichende Namenskonventionen zu überbrücken.

inferNumbersAsenum ('PRIMITIVE_OR_BOXED' | 'BIG_DECIMAL' | 'STRICT_LONG')

Steuert die Heuristiken zur numerischen Typinferenz: Mappt Fließkommazahlen auf Double oder BigDecimal sowie Ganzzahlen auf Integer, Long oder BigInteger.

includeJacksonAnnotationsboolean

Wenn aktiviert, werden generierte Felder und Klassen mit Jackson-Annotationen wie @JsonProperty, @JsonInclude(Include.NON_NULL) und @JsonIgnoreProperties(ignoreUnknown = true) annotiert.

dateTimeLibraryenum ('JAVA_TIME' | 'LEGACY_UTIL_DATE' | 'STRING_ONLY')

Steuert die Inferenz von ISO-8601-Datums-/Uhrzeit-Strings und mappt Zeitstempel automatisch auf java.time.Instant, java.time.OffsetDateTime oder java.time.LocalDate.

Profi-Tipps & Best Practices

Häufige Fallstricke & Fehlerbehebung

Jackson kann den generierten Java Record nicht deserialisieren: 'Cannot construct instance of (no Creators, like default constructor, exist)'.

Stellen Sie sicher, dass jackson-databind mindestens Version 2.12 verwendet. Unter Java 16+ muss jackson-module-parameter-names im ObjectMapper registriert sein, oder aktualisieren Sie auf Jackson 2.13+, das kanonische Konstruktoren von Records automatisch unterstützt.

Lombok @Builder schlägt fehl oder ignoriert Initialisierungswerte/Standardwerte in generierten POJO-Feldern.

Fügen Sie Feldern mit Initialisierern die Annotation @Builder.Default hinzu oder deklarieren Sie explizit @NoArgsConstructor neben @AllArgsConstructor, damit Jackson das Objekt via Reflection oder Builder-Pattern instanziieren kann, ohne Standardwerte zurückzusetzen.

Verschachtelte heterogene JSON-Arrays (gemischte Datentypen) führen zu ungültigen generischen Definitionen wie List<Object>.

Definieren Sie ein polymorphes gemeinsames Interface oder eine abstrakte Basisklasse mit Jacksons @JsonTypeInfo und @JsonSubTypes, oder bereinigen Sie die JSON-Payload vorab, um einheitliche Objektstrukturen vor der POJO-Generierung zu erzwingen.

Häufig gestellte Fragen (FAQ)

▼

▼

▼

▼

Verwandte Werkzeuge & Dienstprogramme

Alle Werkzeuge →