JSON to Java
Générez des records Java depuis un échantillon JSON, prêts à lier avec Jackson.
Entrée JSON
Code généré
Saisissez du JSON à gauche pour générer un type à partir de celui-ci.
Qu'est-ce que JSON to Java ?
Un convertisseur JSON vers Java transforme un échantillon de charge utile JSON en déclarations de records Java qui reflètent sa structure. Les records, ajoutés en Java 16, sont le remplacement moderne du POJO écrit à la main : une seule ligne déclare les composants et le compilateur génère le constructeur, les accesseurs, equals, hashCode et toString, supprimant la centaine de lignes de code répétitif qu'une classe de données exigeait autrefois. Comme Jackson et les autres bibliothèques de liaison JSON peuvent construire des records directement, c'est désormais le chemin le plus court d'une réponse d'API vers du Java typé. Les générer depuis une vraie charge utile évite aussi le bug d'intégration classique où un nom de champ tapé à la main diffère de la clé JSON d'un seul caractère et se désérialise silencieusement en null.
Comment utiliser JSON to Java
- Collez une réponse JSON représentative dans le panneau de gauche — les composants du record correspondent exactement aux clés de cet échantillon.
- Définissez un nom de record racine au-dessus de la sortie (par défaut « Root ») ; chaque objet imbriqué reçoit son propre record, nommé d'après la clé qui le contient.
- Copiez les records dans votre projet — chaque record de premier niveau exige son propre fichier si vous le déclarez public, ou ils peuvent être imbriqués dans une seule classe.
- Utilisez le sélecteur de langue au-dessus de la sortie pour émettre la même forme en data class Kotlin ou record C# à la place.
Exemples
Objet plat en record
Entrée
{"id": 1, "name": "Ada", "active": true}
Sortie
record Root( int id, String name, boolean active ) {}
Objet imbriqué et une liste
Entrée
{"user": {"id": 1, "name": "Ada", "roles": ["admin"]}}
Sortie
import java.util.List; record User( int id, String name, List<String> roles ) {} record Root( User user ) {}
Erreurs courantes
- Laisser un champ nullable en primitif int ou boolean — un null dans la charge utile fait alors échouer la liaison ou devient silencieusement 0 ou false, bien plus dur à remarquer.
- Déclarer tous les records générés public dans un seul fichier, ce qui ne compile pas car Java n'autorise qu'un seul type public de premier niveau par fichier.
- S'attendre à ce qu'un record soit mutable — les composants sont final par conception, donc le code qui tentait de définir des champs après construction demande une restructuration plutôt qu'une petite édition.
Pourquoi utiliser cet outil
- Produit des records plutôt que des POJOs historiques, remplaçant constructeur, getters, equals, hashCode et toString par une seule déclaration.
- Ajoute automatiquement l'import java.util.List quand la charge utile contient des tableaux, pour que la sortie compile sans chasser les imports manquants.
- Fonctionne entièrement côté client, donc une charge utile copiée d'un service Spring Boot ou Micronaut reste sur votre machine au lieu d'atteindre un serveur.