Aller au contenu
4all.tools

Générez JSON Schema depuis des documents JSON complets

Générez un JSON Schema à partir de vos exemples. Vérifiez les champs obligatoires, contrôlez les exemples et téléchargez le schéma.

Espace de travail de l’outil

Générateur de JSON Schema

Activez JavaScript pour déduire un schéma localement dans votre navigateur.

Chaque éditeur contient un document JSON complet. Un tableau à la racine reste un tableau. Les exemples orientent le schéma ; ils ne prouvent pas les règles de votre domaine.

Jusqu’à 20 exemples ; 250 000 unités UTF-16 par exemple et 500 000 au total ; 1 000 000 octets par fichier ; profondeur 20 ; 50 000 nœuds source au total ; 2 000 nœuds déduits ; schéma de 100 000 unités UTF-16 au maximum. Les budgets de travail peuvent être atteints avant.

Le traitement reste dans votre navigateur. Les exemples ne sont ni envoyés ni enregistrés.

Exemple 1

1 exemple(s).

Saisissez du JSON dans chaque exemple.

    Options du schéma

    La sortie utilise un vocabulaire fixe et limité de draft-07 avec unions de types et schémas inline. Les objets autorisent les propriétés supplémentaires. Aucun format, enum ni relation entre champs n’est déduit.

    Copiez le schéma et collez-le manuellement dans le validateur. Ces liens ne transfèrent ni exemples ni schéma.

    Analysez les documents avant de générer

    Collez un document JSON complet dans chaque éditeur ou ouvrez un fichier local .json UTF-8. Ajoutez jusqu’à vingt exemples, cliquez sur Analyser les exemples, vérifiez les champs, puis choisissez Générer le schéma.

    Tous les exemples doivent être du JSON strict valide. Corrigez les éditeurs vides, clés dupliquées, commentaires, JSONC/JSON5 ou nombres perdant en précision avant de continuer ; l’outil n’ignore pas les exemples en erreur.

    Un tableau dans un éditeur compte comme un exemple, et tous ses éléments contribuent au schéma. Plusieurs éditeurs produisent un schéma commun à leurs documents. Un exemple peut aussi être une chaîne, un nombre, un booléen ou null.

    Exemple de tableau :

    [{"id":1},{"id":2,"nombre":"Ana"}]

    Avec les champs obligatoires déduits, le tableau complet satisfait ce schéma :

    {
      "$schema": "http://json-schema.org/draft-07/schema#",
      "type": "array",
      "items": {
        "type": "object",
        "properties": {
          "id": {
            "type": "integer"
          },
          "nombre": {
            "type": "string"
          }
        },
        "required": [
          "id"
        ],
        "additionalProperties": true
      }
    }

    Choisir les champs obligatoires

    Dans l’exemple, id apparaît dans les deux objets : il est donc obligatoire par défaut. nombre n’apparaît que dans un objet et reste facultatif. Si vous rendez nombre obligatoire, le premier objet ne passe plus : le rapport indique /0, avec la règle required en /items/required. Le schéma reste exportable, mais un avertissement signale que certains exemples ne le respectent pas.

    Une propriété absente et une propriété valant null sont deux cas différents. Dans [{"x":null},{"x":"a"},{}], x est facultatif et accepte null ou une chaîne. Retirez l’objet vide : x devient obligatoire tout en acceptant encore null.

    Les champs obligatoires sont déduits de vos exemples, pas des règles de votre application. Pour les objets imbriqués, seuls ceux situés au même emplacement sont comparés. Vérifiez les choix avant d’utiliser le schéma. Rétablir les champs déduits supprime tous les choix manuels, y compris ceux des autres pages.

    Un tableau vide [] produit type: "array" avec items: {}, car il ne renseigne pas sur le type de ses éléments. Un objet vide {} ne révèle aucune propriété. Les entiers et les fractions sont combinés en number ; les autres mélanges forment une union type. Le schéma peut donc accepter des combinaisons absentes de vos exemples.

    Ce que vérifie le schéma généré

    La sortie utilise JSON Schema draft-07. Elle décrit les types, les propriétés d’objets, les champs obligatoires et les éléments de tableaux. Les objets acceptent des propriétés supplémentaires avec additionalProperties: true. Vous pouvez ajouter title et description à la racine.

    L’outil ne déduit pas de listes de valeurs autorisées, de plages numériques, de motifs, de références, de tuples ni de conditions avec anyOf, oneOf ou allOf. Ajoutez ces règles si votre application en a besoin.

    Les suggestions de format peuvent repérer des adresses e-mail ASCII, des URI HTTP(S) absolues et des dates écrites sous la forme YYYY-MM-DD. Activez-les avant l’analyse. Au moins deux chaînes doivent correspondre ; un contre-exemple ou une chaîne dépassant 1 024 unités UTF-16 retire la suggestion. Les suggestions n’ajoutent pas de règle format au schéma, et la vérification intégrée ne valide pas les formats.

    Exportation et limites

    La copie et le téléchargement incluent tout le schéma, quelle que soit la page de champs affichée. Le fichier est nommé schema.json, avec le type MIME application/schema+json, en UTF-8 sans BOM. Vous pouvez choisir une indentation de deux ou quatre espaces. Les fins de ligne sont LF, sans saut final. Si le presse-papiers échoue, copiez le champ de sortie complète.

    Limite Maximum
    Exemples 20
    Fichier 1 000 000 octets
    Texte par exemple / total 250 000 / 500 000 unités UTF-16
    Conteneurs imbriqués par exemple 20 niveaux
    Valeurs par exemple / total 25 000 / 50 000
    Propriétés déduites 2 000
    Texte du schéma 100 000 unités UTF-16
    Titre / description 256 / 2 000 unités UTF-16
    Durée d’analyse ou de génération 8 secondes

    Les exemples complexes ou les noms de champs très longs peuvent atteindre d’autres limites de traitement plus tôt. Une opération échouée ou annulée ne fournit pas de schéma partiel. La liste des champs affiche jusqu’à 25 entrées par page.

    Les fichiers doivent utiliser UTF-8. Un BOM initial est retiré avec un avertissement ; un second est invalide. Modifier les exemples ou les suggestions de format demande une nouvelle analyse et réinitialise vos choix de champs obligatoires. Changer les champs obligatoires ou les options du schéma demande de générer à nouveau la sortie.

    Le traitement utilise un Worker local et nécessite JavaScript. Les exemples ne sont ni envoyés ni enregistrés. Pour utiliser le validateur associé, copiez et collez le schéma ; les liens ne transfèrent pas vos données.