JSON vers POJO : classes ou records Java depuis un JSON
Collez votre JSON et obtenez du code Java prêt à l’emploi : une classe pour chaque objet, avec des champs privés, un constructeur sans argument, des getters et des setters, ou des records Java si vous préférez. Les objets imbriqués sont écrits à l’intérieur de leur classe parente, si bien que tout le résultat tient dans un seul fichier .java. Ajoutez les annotations Jackson ou Gson quand vous devez conserver les clés JSON d’origine. La conversion se fait dans votre navigateur et le JSON n’est pas envoyé.
JSON to POJO : convertir du JSON en classes Java pas à pas
- Collez le JSON dans la zone JSON (elle affiche « Collez le JSON ici... »). Un texte collé est converti aussitôt. Si vous tapez, le code se met à jour environ 300 millisecondes après votre dernière frappe.
- Lisez les classes sous Code Java. Une ligne en dessous, comme « 2 classes générées. », indique combien ont été écrites.
- Sélectionnez Copier, juste sous le code. Le bouton affiche « Copié » un instant. Enregistrez le code dans un fichier portant le nom de la classe racine, par exemple
Root.java. - Pour modifier le résultat, ouvrez Paramètres : indiquez le Nom de la classe racine (
Rootpar défaut), choisissez dans Annotations entre Aucune, Jackson et Gson, ou cochez Utiliser des records au lieu de classes. Le code se met à jour dès que vous changez un réglage. - Sélectionnez Effacer pour vider la zone et recommencer.
JSON en classe Java : un exemple
Voici ce que vous collez : { "user_id": 7, "name": "Ana", "price": 4.5, "tags": ["a", "b"], "address": { "city": "Kyoto" } }
Avec Annotations sur « Aucune », le résultat commence par import java.util.List; et public class Root. Les champs sont Integer userId, String name, Double price, List<String> tags et Address address. Viennent ensuite le constructeur sans argument et les getters et setters, comme getUserId et setUserId.
L’objet imbriqué address est devenu Address, une public static class dans Root, ce qui explique qu’un seul fichier suffise. La clé user_id est devenue le champ userId. La ligne d’état vous le signale : « 1 nom de champ a été modifié pour respecter Java. »
JSON to record Java : les annotations Jackson
Réglez le Nom de la classe racine sur Order, choisissez Jackson dans Annotations et cochez Utiliser des records au lieu de classes. Le même JSON devient public record Order(...).
Chaque composant du record porte @JsonProperty("key") avec la clé JSON d’origine, de sorte que user_id reste associé à userId. Si vous choisissez Gson, les mêmes composants portent @SerializedName("key"), avec l’import Gson. Les records nécessitent Java 16 ou une version ultérieure.
Comment les types JSON deviennent des types Java
Tous les types sont des types objets, non primitifs : un champ peut donc être absent ou nul.
- Nombre entier comme
7:Integer. Trop grand (12345678901) :Long. Plus grand encore (99999999999999999999) :BigInteger, avec son import. - Nombre avec point décimal ou exposant, comme
4.5,1.0ou2e3:Double. - Texte :
String.trueoufalse:Boolean(le getter s’appellegetActive, pasisActive).null:Object. - Tableau d’un seul type, comme
["a", "b"]:List<String>, avecjava.util.Listimporté. Tableau vide ou de types mélangés :List<Object>. Tableau dans un tableau :List<List<Integer>>. - Objet : une classe ou un record imbriqué portant le nom de la clé.
Les nombres sont lus exactement comme ils sont écrits : un identifiant long n’est donc jamais arrondi. Les imports n’apparaissent que si le code les utilise. Si une clé figure deux fois dans le même objet, la dernière l’emporte.
Comment les noms de classes et de champs sont choisis
user_idetuser-namedeviennent les champsuserIdetuserName(camelCase).- Un mot réservé de Java comme
classdevient_class. - Un nom qui commence par un chiffre, comme
2nd, devient_2nd. - Une clé
itemscontenant un tableau d’objets donne la classeItemet le champList<Item>: la clé est mise au singulier. - Une clé
Stringcontenant un objet donneStringData. Les noms qui masqueraientString,ListouObjectreçoiventDataà la fin. - Deux objets de même nom : la seconde classe reçoit un numéro, car les noms de classes doivent être uniques dans le fichier.
Le nom de la classe racine est nettoyé pour devenir un nom Java valide, et une zone vide donne Root. Quand le JSON commence lui-même par un tableau d’objets, Root décrit un élément et la page vous invite à lire le JSON comme List<Root>.
Quand le JSON n’est pas accepté
Le lecteur est strict, comme l’est JSON : les commentaires, les apostrophes et les virgules finales sont des erreurs. Le message « Impossible de lire ce JSON » donne une raison claire et la position, comme « Ligne 3, colonne 5 », par exemple « L’analyse s’est arrêtée sur « } ». Vérifiez s’il manque une virgule, deux-points, un crochet ou un guillemet juste avant. »
- Si votre texte est un objet JavaScript aux clés sans guillemets ou avec des apostrophes, passez-le d’abord par « Objet JavaScript en JSON » pour obtenir un JSON strict.
- Pour remettre en forme le JSON avant de le convertir, utilisez « Formateur JSON ».
- Pour vérifier le JSON par rapport à un schéma, utilisez « Validateur de schéma JSON ».
- Pour des interfaces TypeScript à partir de JavaScript, voyez « Convertisseur JS en TS ».
Un JSON valide qui ne contient aucun objet, comme 42 ou un tableau de nombres, affiche « Ce JSON ne contient aucun objet à transformer en classe. » Un texte de plus de 2 000 000 de caractères est refusé, de même qu’une imbrication de plus de 200 niveaux.
Questions fréquentes
Comment convertir JSON en objet Java (POJO) ?
Collez le JSON dans la zone « JSON » et copiez le code sous « Code Java ». Vous obtenez une classe par objet JSON, avec des champs privés, un constructeur public sans argument et des méthodes publiques getX et setX. Enregistrez le code dans un fichier portant le nom de la classe racine, par exemple Root.java, puis lisez le JSON avec Jackson ou Gson.
Comment convertir un tableau JSON en objets Java ?
Collez le tableau d’objets tel quel. L’outil décrit un élément du tableau comme la classe racine et vous indique de lire le JSON comme List. Avec Jackson, c’est un TypeReference> ; avec Gson, un TypeToken>. Un tableau placé dans un objet devient un champ List, avec une classe nommée d’après la clé.
Comment conserver les clés d’origine pour un JSON POJO Jackson ou Gson ?
Ouvrez « Paramètres » et choisissez Jackson ou Gson dans « Annotations ». Jackson ajoute @JsonProperty("key") et Gson ajoute @SerializedName("key") sur chaque champ, avec l’import. Avec « Aucune », une clé comme user_id devient le champ userId, qui ne correspond plus au JSON si la clé d’origine n’est pas conservée par une annotation ou une stratégie de nommage.
Peut-on passer de JSON vers record Java ?
Oui. Cochez « Utiliser des records au lieu de classes » dans « Paramètres ». Chaque objet JSON devient public record Name(Type a, Type b) {}, et les objets imbriqués deviennent des records dans le record parent. Les records nécessitent Java 16 ou une version ultérieure. Les annotations fonctionnent toujours et se placent sur chaque composant du record.
Pourquoi un nombre JSON est-il un Integer ici et un Double ailleurs ?
Le type dépend de la façon dont le nombre est écrit. Un nombre entier est un Integer, ou un Long s’il est trop grand pour un Integer, ou un BigInteger s’il est trop grand pour un Long. Un nombre écrit avec un point décimal ou un exposant est un Double, même s’il vaut 1.0.
Que se passe-t-il quand les objets d’un tableau ont des clés différentes ?
Ils sont fusionnés en une seule classe qui contient toutes les clés rencontrées dans l’un d’eux, si bien que les clés présentes dans certains objets seulement reçoivent aussi un champ. Si une clé contient des types différents, ou si un tableau est vide, le champ est de type Object ou List. Vérifiez ces champs à la main.
L’outil génère-t-il des classes Kotlin ou des annotations Lombok ?
Non. La sortie est du Java simple : des classes avec getters et setters, ou des records. Si vous utilisez Lombok, supprimez les méthodes getter et setter et placez @Data sur la classe. Une data class Kotlin est à écrire séparément.
Ce convertisseur JSON Java envoie-t-il mon JSON, et quelle taille accepte-t-il ?
Jusqu’à 2 000 000 de caractères, avec une imbrication de 200 niveaux au plus. La conversion s’exécute dans votre navigateur : le JSON n’est ni envoyé ni enregistré.
Recommandés
-
Support tablette rotatif 360° LamicallPosez votre téléphone Android de test à côté du portable pour voir les nouvelles classes lire la réponse.
-
Casque à réduction de bruit Soundcore Q30Coupez le bruit du bureau pendant que vous transformez une longue réponse JSON en classes modèles.
-
Elgato Stream Deck Neo (8 touches)Mettez compilation, lancement et tests sur une touche : chaque nouvel endpoint se vérifie d'une seule pression.
Aide à garder les outils gratuits. ✨
Images non contractuelles. En tant que Partenaire Amazon, je réalise un bénéfice sur les achats remplissant les conditions requises.