← Accueil des outils100 % côté client

Générateur de Java Records, POJOs Lombok et Jackson à partir de JSON

Générez des Java Records idiomatiques, des classes Lombok @Data ou des POJOs Java standards avec inférence de types et annotations Jackson @JsonProperty à partir d'un JSON.

649 chars
Classes Java générées
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
) {}

Style de classe cible

3

Nombre de classes générées

17

Nombre de champs inférés

1.2 KB

Référence technique et guide d'architecture

Générateur de Java Records, POJOs Lombok et Jackson à partir de JSON — Guide de référence

Générez des Java Records idiomatiques, des classes Lombok @Data ou des POJOs Java standards avec inférence de types et annotations Jackson @JsonProperty à partir d'un JSON.

Paramètres clés et contrôles

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

Définit le paradigme de classe cible : Records immuables (Java 16+), classes annotées avec Lombok (@Data, @Builder, @Value) mutables ou immuables, ou JavaBeans classiques avec getters/setters explicites.

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

Détermine le mappage entre les clés JSON et les champs Java, ainsi que la génération d'annotations Jackson (@JsonProperty, @JsonNaming) pour gérer les écarts de casse.

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

Contrôle les heuristiques d'inférence numérique, associant les nombres flottants à Double ou BigDecimal et les entiers à Integer, Long ou BigInteger.

includeJacksonAnnotationsboolean

Si activé, annote les classes et champs générés avec des annotations Jackson telles que @JsonProperty, @JsonInclude(Include.NON_NULL) et @JsonIgnoreProperties(ignoreUnknown = true).

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

Gère l'inférence des chaînes de date/heure au format ISO-8601, mappant automatiquement les horodatages vers java.time.Instant, java.time.OffsetDateTime ou java.time.LocalDate.

Conseils de pro et bonnes practices

Pièges courants et dépannage

Jackson échoue à désérialiser un Record Java généré avec l'erreur 'Cannot construct instance of (no Creators, like default constructor, exist)'.

Assurez-vous que jackson-databind est en version 2.12 ou supérieure. Sous Java 16+, vérifiez que le module jackson-module-parameter-names est bien enregistré dans votre ObjectMapper, ou passez à Jackson 2.13+ qui prend en charge nativement le constructeur canonique des records.

L'annotation Lombok @Builder échoue ou ignore les valeurs par défaut définies dans les champs du POJO généré.

Ajoutez @Builder.Default sur les champs disposant d'une valeur d'initialisation, ou déclarez explicitement @NoArgsConstructor conjointement avec @AllArgsConstructor afin que Jackson puisse instancier l'objet via réflexion ou builder sans réinitialiser les valeurs par défaut.

Les tableaux JSON hétérogènes imbriqués (types mixtes) génèrent des types génériques non exploitables tels que List<Object>.

Définissez une interface polymorphique commune ou une classe de base abstraite annotée avec @JsonTypeInfo et @JsonSubTypes de Jackson, ou prétraitez le payload JSON pour harmoniser les structures d'objets avant la génération du POJO.

Foire aux questions (FAQ)

▼

▼

▼

▼

Outils et utilitaires connexes

Tous les outils →
Générateur de Records & Classes C# .NET depuis JSON (System.Text.Json & Newtonsoft)developer

Convertissez des payloads JSON en records, classes et structs C# fortement typés, prenant en charge les attributs System.Text.Json [JsonPropertyName] et Newtonsoft.Json.

Ouvrir l'outil→
Analyseur de logs d'accès Nginx & Apache (Métriques, codes d'état & GeoIP)developer

Analysez localement vos journaux d'accès bruts Nginx et Apache : distribution des codes d'état, URL les plus sollicitées, adresses IP clientes uniques, métriques de bande passante et filtrage par expressions régulières personnalisées.

Ouvrir l'outil→
Convertisseur GraphQL SDL vers JSON Schema & OpenAPIdeveloper

Convertissez directement les définitions de schémas GraphQL SDL, types, requêtes et mutations en schémas JSON Schema Draft-07 et composants OpenAPI standard.

Ouvrir l'outil→
Syntaxe Crontab & Expressions Quartz Cheat Sheetdeveloper

Référence exhaustive de la syntaxe cron POSIX à 5 champs et Quartz à 6 champs. Raccourcis macros, calcul des cycles et prévention des chevauchements de tâches.

Ouvrir l'outil→
Guide Pratique des Expressions Régulières (RegEx) JavaScriptdeveloper

Manuel technique des expressions régulières ECMAScript, groupes de capture, remplacements et drapeaux de configuration.

Ouvrir l'outil→
Encodeur et Décodeur d'URLdeveloper

Encodez et décodez en toute sécurité des URL et paramètres de requête avec les normes RFC 3986, encodeURIComponent, encodeURI et formUrlEncoded.

Ouvrir l'outil→