Génération de types

JSON vers Javades réponses API aux modèles

Un tableau produit le modèle de ses éléments. Pour lire la réponse entière, utilisez List<Root>.

JSON vers Java

Entrée JSON

Analyse et génération dans le navigateur. Les entrées ne sont ni envoyées ni stockées.

Source générée

Options de génération

Jackson 2.x ; Kotlin nécessite son module. La déduction des types ne valide pas les données. Consultez les réglages ci-dessous.

Entrée tableau : ce fichier définit un élément. Décodez List<Root>.

2 classes · 2 champs nullable

JSON vers Java permet de démarrer avec une réponse API lorsque les classes manquent. Plusieurs objets réunis dans un tableau révèlent les champs absents du premier exemple et les valeurs null.

Ce générateur de classes Java propose une ébauche. Les exemples ne prouvent ni le caractère obligatoire des propriétés ni les valeurs futures autorisées par votre API.

Pourquoi JSON vers Java ?

Examiner tous les objets

JSON vers Java fusionne les champs observés à la même position dans chaque objet du tableau. Une propriété apparue plus tard est conservée ; une absence ou null influe sur son type.

Deux fiches aux champs différents convergent vers un modèle, avec un repère creux pour une propriété absente.

Conserver le lien avec les clés

Le convertisseur JSON transforme les clés contenant des signes ou des mots réservés en identifiants valides. Les annotations Jackson conservent le nom original ; un suffixe numérique résout les collisions.

Des clés irrégulières sont reliées par couleur à des propriétés valides et à une classe imbriquée.

Choisir les bons exemples

01

Rassembler des cas différents

La racine doit être un objet ou un tableau non vide composé uniquement d’objets. Le tableau sert à déduire un modèle d’élément ; aucune propriété enveloppe n’est inventée. Les tableaux internes sont analysés récursivement.

02

Régler les valeurs null et l’imbrication

Le mode observé élargit les champs manquants ou null. Le mode global utilise des wrappers Java et des propriétés Kotlin avec ? et une valeur null par défaut. Sans imbrication, les classes auxiliaires restent au niveau supérieur du fichier.

03

Exporter la dernière révision

Le mode automatique attend 350 ms. Désactivez-le pour afficher Générer ou utilisez Ctrl/Cmd+Enter. Toute modification bloque l’export. Effacer et charger l’exemple gardent un état annulable, avec entrée, options et résultat.

Champs, types et fichiers produits

Précision des nombres

Les entiers ordinaires dans la plage signée de 64 bits deviennent long/Long ; les autres entiers utilisent BigInteger. Les formes décimales et exponentielles, dont 1.0 et 1e3, utilisent BigDecimal, sans passage par les flottants JavaScript.

Constructeurs Kotlin

Le sélecteur Kotlin produit des data classes sur cette même page. Les propriétés manquantes ou null deviennent T? = null, les autres n’ont pas de valeur par défaut. Un objet racine vide produit une class ordinaire sans paramètres.

Noms et cibles des annotations

Les noms suivent camelCase ASCII avec suffixes stables. JsonProperty annote les champs Java ainsi que les paramètres et getters Kotlin. Les types pleinement qualifiés évitent les conflits avec un nom racine tel que String ou List.

Classes imbriquées ou auxiliaires

Par défaut, Java produit des champs publics et des classes static internes ; Kotlin produit des classes de données imbriquées. Sans imbrication, les classes Java auxiliaires ne sont pas public. Un seul fichier source est téléchargé.

Conditions et limites

Configurer Jackson
Les annotations visent Jackson 2.x. Kotlin nécessite jackson-module-kotlin et kotlin-reflect. Configurez FAIL_ON_NULL_FOR_PRIMITIVES et StrictNullChecks pour les contrôles de null. Les références Java peuvent toujours contenir null ; ces modèles ne sont pas des validateurs.
Types larges et précision
Les valeurs mixtes ou uniquement null deviennent Object/Any ; les objets internes vides deviennent Map. Les tableaux vides n’indiquent aucun type d’élément. Activez USE_BIG_INTEGER_FOR_INTS et USE_BIG_DECIMAL_FOR_FLOATS pour ces positions. Désactivez FAIL_ON_EMPTY_BEANS pour sérialiser une classe racine vide.
Clés impossibles à représenter
Un nom JsonProperty vide désigne le nom par défaut : les véritables clés vides sont refusées. Sans annotations, tout renommage nécessaire est également refusé. Une Map ou un décodeur personnalisé convient à ces cas.
Échantillons, pas schémas
Pas de JSON Schema, OpenAPI, Lombok, record, Gson, ni de déduction de dates ou d’énumérations. Les chaînes restent des chaînes. Les scalaires, tableaux vides ou mixtes à la racine sont refusés. Absence et null explicite ne sont pas suivis séparément.
Budgets explicites
JSON strict uniquement, sans commentaires, clés dupliquées, réparation, URL ni import de fichier. Limites : 500 000 caractères en entrée, 50 000 nœuds, profondeur 40, 100 champs par objet, 200 classes, 1 000 caractères par clé/nombre, exposant absolu 10 000 et 1 000 000 caractères en sortie.

Questions sur JSON vers Java

Le code est-il compatible avec Spring Boot ?

JSON vers Java produit des classes destinées à Jackson 2.x. Ajoutez le package et les dépendances dans votre projet ; vérifiez le module Kotlin et les réglages null. Aucun fichier de configuration universel pour Spring Boot n’est fourni.

Les tableaux d’objets sont-ils pris en charge ?

Oui, si le tableau est non vide et ne contient que des objets. Tous les éléments contribuent au modèle. Décodez la réponse avec List<Root>, car la classe produite décrit un élément.

Mes données restent-elles privées ?

L’analyse et la génération se font dans le navigateur actuel. Les données ne sont ni envoyées ni stockées. Cette page ne propose pas de lecture d’URL ni de lien de partage des exemples.

Comment les nombres sont-ils typés ?

Un entier ordinaire devient long/Long ou BigInteger selon sa plage. Les décimales et exposants deviennent BigDecimal. Dans Object/Any, les options de précision Jackson décrites plus haut restent nécessaires.

Quand JsonProperty est-il ajouté ?

Lorsque les annotations sont actives, chaque champ Java et chaque paramètre/getter Kotlin porte la clé originale. Cela préserve les clés renommées et les collisions. Une clé vide exige malgré tout un autre modèle.

Un cas d’inférence à améliorer ?

Vérifier le modèle dans votre projet

Utilisez JSON vers Java sur plusieurs réponses réelles, vérifiez les champs nullable et les réglages Jackson, puis compilez le fichier exporté dans votre projet.