Générer des types à partir de JSON
Génère des déclarations TypeScript, Java 17+ ou C# 10+ à partir d’une valeur ou de 100 exemples au maximum.
- Fonctionne dans votre navigateur
- Aucun envoi
- Vérifiez avant de télécharger
Les entrées restent dans cet onglet, sans envoi ni sauvegarde automatique. Les statistiques agrégées d’utilisation et les diagnostics généraux de traitement sont facultatifs et envoyés uniquement avec votre consentement, sans contenu ni nom de fichier. Effacer ou fermer supprime les entrées ; enregistrez les résultats utiles avant de partir.
Formats et limites
Génère des déclarations TypeScript, Java 17+ ou C# 10+ à partir d’une valeur ou de 100 exemples au maximum. Une valeur absente et un null explicite sont distincts dans le modèle déduit. TypeScript utilise des types optionnels et des unions ; en Java et C#, c’est à vous de renseigner les indicateurs de présence. Aucun désérialiseur n’est généré. Nom racine en ASCII ≤ 64 ; noms de champs ≤ 256 ; les tableaux vides restent de type inconnu. Le nom racine doit éviter les identifiants réservés du langage ou du framework ; C# refuse aussi System, pour ne pas entrer en conflit avec l’espace de noms du framework. Les alias de membres réservent le nom du type qui les contient et ceux des indicateurs de présence ; les noms JSON d’origine restent dans les attributs et dans le rapport du modèle.
UTF-8 uniquement. Entrée ≤ 1 Mio ; XML ≤ 100 000 unités UTF-16 ; profondeur ≤ 64 ; JSON ≤ 20 000 nœuds. JSONL ≤ 16 Mio, 100 000 lignes, 1 Mio par valeur. Sortie ≤ 32 Mio. Requêtes : 3 s ; autres tâches : 10 s ; traitement annulable. Mémoire native XSD ≤ 64 Mio ; ce n’est pas toute la mémoire du traitement ni du DOM.
Mode d’emploi
- Choisir source et mode
Choisissez TypeScript, Java ou C#, nommez le type racine et sélectionnez un seul exemple ou un tableau d’exemples. Utilisez des enregistrements variés et représentatifs pour faire apparaître les champs manquants, nullables et hétérogènes.
- Configurer les paramètres
L’exemple chargé, à deux enregistrements, produit interface Example : id:number et name:string sont obligatoires ; nickname?:null et active?:boolean sont facultatifs, car chacun est absent d’un des enregistrements.
- Examiner et télécharger
Téléchargez la déclaration source et inferred-model.json. Vérifiez la différence entre facultatif et null explicite, ainsi que la correspondance des noms de champs, avant de l’intégrer. L’outil génère des déclarations ; il ne valide pas les données futures et ne génère pas de désérialiseur.
Formats et limites
Pourquoi cette saisie est-elle refusée ou le résultat vide ?
Le mode tableau d’exemples demande de 1 à 100 valeurs d’exemple. Les noms racine commencent par une lettre ASCII et ne contiennent que des lettres, des chiffres ou des tirets bas, 64 caractères au plus. Un tableau vide ne donne aucune indication sur le type de ses éléments.
Quel profil d’analyse et quelles limites s’appliquent ?
L’inférence repose sur des exemples : ce n’est pas une garantie de schéma. Les sorties Java 17+ et C# 10+ peuvent exiger des indicateurs de présence gérés par l’appelant ; lisez leurs commentaires. Si l’analyseur numérique refuse leur précision, les grands identifiants doivent être des chaînes JSON entre guillemets.
Les saisies ou fichiers référencés sont-ils envoyés à un serveur ?
L’analyse s’exécute en local, dans un worker du navigateur. Les URL présentes dans la saisie ne chargent aucun document distant. Fournissez explicitement comme fichiers locaux les dépendances de schéma prises en charge ; gardez votre source à part et téléchargez les résultats avant de fermer la page.