Aller au contenu
Tout en local

JSON vers schéma Mongoose

Transformez un exemple JSON en un schéma et modèle Mongoose prêts à l'emploi.

Entrée
Sortie

JSON vers schéma Mongoose

Collez un exemple de document JSON — un objet unique ou un tableau d'objets — et cet outil déduit la structure et génère une définition mongoose.Schema() fonctionnelle avec une exportation de modèle. Il est conçu pour le moment où vous avez une charge JSON d'une API, un fichier de graine ou une ancienne sauvegarde de base de données et vous avez besoin d'un modèle Mongoose, sans taper chaque champ à la main.

L'outil lit les valeurs réelles pour choisir les vrais types : les chaînes deviennent String, les nombres deviennent Number, une chaîne de date au format ISO devient Date, et un champ dont le nom se termine par "Id" (ou la forme de tableau "…Ids") devient une référence ObjectId, car c'est ainsi qu'un schéma écrit à la main le modéliserait. Les objets imbriqués deviennent leur propre nouveau mongoose.Schema({...}) dans le parent, et un tableau d'objets devient un tableau de ce schéma imbriqué. Les options gèrent le reste : nommez le modèle, marquez les champs scalaires comme obligatoires, conservez les valeurs propres de l'exemple comme valeurs par défaut, activez l'option des horodatages, décidez si les sous-documents conservent leur propre _id, et changez les champs suffixés "Id" entre ObjectId et String simple. Choisissez la syntaxe CommonJS ou module ES, et ajoutez optionnellement une interface TypeScript correspondante sous le modèle.

En fournissant un tableau de documents exemples au lieu d'un seul, l'outil peut remarquer les champs présents dans seulement certains d'entre eux, utile lorsque les données réelles ne sont pas parfaitement uniformes — ceux-ci deviennent facultatifs dans l'interface TypeScript générée. Les sauts de ligne Windows et Unix sont traités de manière identique, et les entrées trop volumineuses pour être traitées confortablement sont signalées au lieu de figer l'onglet. Le total sous la sortie affiche le nombre de champs, le nombre de schémas imbriqués et le nombre de caractères.

Tout s'exécute localement dans votre navigateur — le JSON que vous collez, qui peut contenir de vrais enregistrements, n'est jamais chargé nulle part. Quand le schéma vous plaît, copiez-le, téléchargez-le en tant que fichier .txt à coller dans votre propre fichier .js ou .ts, ou renvoyez la sortie à l'entrée pour l'affiner davantage.

FAQ

Quels types détecte-t-il ?
String, Number, Boolean, Date (à partir de chaînes de date au format ISO), ObjectId (pour les champs dont le nom se termine par "Id" ou "Ids"), schémas imbriqués pour les objets, et tableaux de l'un quelconque d'entre eux. Un champ sans type fiable, ou un dont le type diffère entre les documents exemples, devient mongoose.Schema.Types.Mixed.
Puis-je coller plus d'un document exemple ?
Oui. Collez un tableau d'objets et l'outil les fusionne : un champ présent dans seulement certains d'entre eux est traité comme facultatif dans l'interface TypeScript générée, et un champ dont le type diffère entre les documents revient à Mixed.
Que contrôle "Inclure _id dans les sous-documents" ?
Mongoose donne à chaque sous-document intégré son propre _id par défaut. Désactiver cela ajoute { _id: false } à chaque schéma imbriqué généré, ce qui est le choix courant pour les sous-documents qui ne sont jamais interrogés de façon indépendante.
Pourquoi un champ comme "userId" devient-il ObjectId ?
Un nom de champ se terminant par "Id" (singulier) ou "Ids" (un tableau de références) est presque toujours une référence à un autre document, donc l'outil le rend sous la forme mongoose.Schema.Types.ObjectId au lieu de String. Désactivez "Utiliser ObjectId pour les champs 'Id'" si vous préférez des chaînes simples à la place.
Mon JSON est-il chargé quelque part ?
Non. La génération du schéma s'exécute entièrement dans votre navigateur — votre JSON, y compris tous les enregistrements réels qu'il contient, ne quitte jamais votre appareil.