← Tous les outils Code Gen

Générateur de classes Java depuis JSON

Collez du JSON et obtenez instantanément des classes Java prêtes pour la production avec les types et annotations appropriés.

Modes de sortie POJO, Record et Jackson

Les Plain Old Java Objects (POJOs) sont le format de sortie le plus compatible : champs privés avec getters et setters publics, un constructeur sans argument et un constructeur avec tous les arguments. Ce pattern est compris par toutes les bibliothèques de sérialisation Java — Jackson, Gson, Moshi — et tous les frameworks Java.

Les records Java 16+ produisent un code plus concis pour les porteurs de données immuables. Une déclaration de record génère automatiquement le constructeur, les getters (nommés d’après le composant, sans préfixe "get"), equals(), hashCode() et toString(). Les records sont idéaux pour les cas d’utilisation DTO et objet-valeur où l’immuabilité est souhaitée.

Le mode annotation Jackson ajoute @JsonProperty("originalKey") à chaque champ pour que les noms de champs Java en camelCase puissent correspondre aux clés JSON dans n’importe quel style de casse. @JsonIgnoreProperties(ignoreUnknown = true) est placé sur chaque classe pour éviter les échecs de désérialisation quand l’API ajoute de nouveaux champs. La sortie est prête à utiliser avec @RequestBody et RestTemplate de Spring Boot.

Correspondance de types et conventions de nommage

Les chaînes JSON deviennent String, les entiers int (ou Integer pour nullable), les décimaux double (ou Double), les booléens boolean (ou Boolean), les champs null-only Object avec commentaire. Les tableaux deviennent List<T> où T est la classe d’élément inférée. Les objets imbriqués génèrent des classes séparées nommées en PascalCase d’après leur clé.

Les clés JSON sont automatiquement converties en identifiants Java valides : les tirets et espaces sont supprimés, le caractère suivant est mis en majuscule (camelCase). Les clés commençant par des chiffres reçoivent un préfixe underscore. Les mots réservés Java sont échappés avec un suffixe underscore.

La déclaration de package en haut de chaque fichier est par défaut "com.example.model" mais peut être personnalisée. Les imports pour java.util.List et les annotations Jackson sont ajoutés automatiquement selon les besoins.

Intégration Spring Boot et entreprise

Les applications Spring Boot qui consomment des API REST ont besoin de classes de requête et de réponse typées. Collez le contrat JSON de la documentation API, générez des POJOs annotés Jackson et intégrez-les dans votre couche de service.

Les annotations Lombok (@Data, @NoArgsConstructor, @AllArgsConstructor, @Builder) peuvent être ajoutées à la sortie POJO pour éliminer le code boilerplate des getters/setters. Avec Lombok le POJO généré se réduit aux déclarations de champs et aux annotations au niveau de la classe.

Lors de l’intégration avec JPA ou Hibernate, les POJOs générés servent de point de départ pour les classes d’entités. Ajouter @Entity, @Id et @Column par-dessus la sortie générée donne une première ébauche d’entité JPA depuis votre modèle de données JSON.

FAQ

Mes données sont-elles envoyées à un serveur ?

Non. Tout le traitement s’effectue entièrement dans votre navigateur. Votre JSON ne quitte jamais votre appareil.

Quel mode de sortie dois-je utiliser ?

Utilisez POJO pour une compatibilité maximale et quand vous avez besoin de mutabilité. Utilisez les records pour les DTOs immuables en Java 16+. Utilisez le mode Jackson quand votre application consomme des API REST externes.

Comment les mots réservés Java sont-ils gérés comme noms de champs ?

Les mots réservés comme "class", "interface", "default" et "new" reçoivent un underscore en suffixe (ex. class_) et une annotation @JsonProperty préserve la clé JSON originale.

Le générateur supporte-t-il Lombok ?

Oui. Activez le toggle Lombok pour remplacer les getters, setters et constructeurs explicites par les annotations @Data, @NoArgsConstructor et @AllArgsConstructor.

Quelle version Java est ciblée ?

La sortie par défaut cible Java 11 (utilisant List<T> de java.util). Un mode Java 16+ bascule la sortie POJO vers les records. Un mode de compatibilité Java 8 évite var et autres fonctionnalités modernes.

Outils similaires