Aller au contenu
Tout en local

JSON en classe Java

Convertissez un exemple JSON en classes Java, avec les types imbriqués et les listes génériques déduits automatiquement.

Entrée
Sortie

JSON en classe Java

Collez un exemple JSON et cet outil génère les classes Java nécessaires pour le représenter, en déduisant les types de champs, les types d'objets imbriqués et les types d'éléments de listes génériques directement à partir des valeurs que vous fournissez. Il est conçu pour les développeurs backend qui reçoivent une réponse API ou un fichier de configuration et ont besoin d'un modèle typé pour le désérialiser, sans écrire manuellement chaque champ.

Choisissez comment les champs sont annotés : aucune annotation, @JsonProperty de Jackson, ou @SerializedName de Gson, chacune portant la clé JSON d'origine pour que la sérialisation corresponde toujours après qu'un champ soit renommé en camelCase. Désactivez les getters et setters pour une classe simple avec des champs publics, ou remplacez-les par @Data de Lombok ou un record Java, où les composants remplacent les champs et les accesseurs. Les types wrapper (Integer, Boolean, Double) peuvent être forcés partout au lieu des primitifs ; l'outil utilise toujours un wrapper où une valeur est véritablement optionnelle, puisqu'un primitif ne peut jamais contenir null. Une déclaration de package est ajoutée lorsqu'elle est fournie, et les objets imbriqués s'affichent en tant que classes imbriquées statiques dans un seul fichier ou en tant que classes de haut niveau séparées.

Lorsque la même forme apparaît plusieurs fois — objets répétés dans un tableau, ou deux champs frères avec une structure identique — l'outil réutilise une seule classe générée au lieu de la dupliquer. Les champs observés avec différentes formes dans un tableau sont fusionnés dans une classe, les champs absents de certains éléments étant marqués optionnels. Les nombres restent int lorsqu'ils s'adaptent à une plage 32 bits et s'élargissent à long ou double selon les besoins ; une clé JSON qui ne peut pas être un identifiant Java, comme un emoji, revient à un nom généré sûr.

Tout s'exécute localement dans votre navigateur — un exemple JSON n'est jamais chargé ou transmis à un serveur. Copiez les classes générées dans votre projet, téléchargez-les sous forme de fichier .txt, ou renvoyez la sortie à l'entrée pour exécuter un autre outil dessus.

FAQ

Gère-t-il les objets imbriqués et les tableaux?
Oui. Les objets imbriqués deviennent leur propre classe (imbriquée ou séparée, selon l'option de disposition de classe) et les tableaux deviennent une java.util.List générique du type d'élément déduit.
Que se passe-t-il pour un champ manquant dans certains objets d'exemple?
Il est marqué optionnel et, s'il s'agit d'une primitive, mis à niveau vers son type wrapper (Integer, Boolean, Double) pour que le champ puisse légitimement être null.
Puis-je utiliser Lombok ou des records Java au lieu de getters et setters manuels?
Oui. Activez Lombok @Data pour une classe annotée avec @Data et des champs privés, ou Utilisez un record Java pour générer un record avec les champs comme composants — les deux remplacent les accesseurs écrits à la main.
Comment les noms de champs sont-ils choisis lorsqu'une clé JSON n'est pas un identifiant Java valide?
La clé est convertie en camelCase ; une clé qui produit un nom vide ou qui entre en conflit avec les mots clés revient à un nom généré sûr comme field ou un mot clé avec un tiret bas à la fin.
Mon JSON est-il chargé quelque part?
Non. La génération de classe s'exécute entièrement dans votre navigateur — votre exemple JSON n'est jamais envoyé à un serveur.