Valider un JSON avec un schéma JSON
Vérifiez un document JSON strict avec un sous-ensemble local et limité de JSON Schema draft-07.
Espace de travail de l’outil
Valider un document JSON avec un schéma
JavaScript est nécessaire pour exécuter cet outil de validation local.
Saisissez un objet JSON utilisant le sous-ensemble pris en charge de draft-07.
0 / 100 000 unités de code UTF-16
Saisissez le document JSON à valider avec le schéma.
0 / 250 000 unités de code UTF-16
La validation est effectuée localement dans votre navigateur. Aucune entrée n’est envoyée à un serveur.
Saisissez un schéma et un document JSON, puis choisissez Valider.
Résultat de la validation
Valide
Valide pour le sous-ensemble pris en charge de draft-07.
Non conforme
Le document ne respecte pas le schéma.
Cette première version affiche la première erreur et ne liste pas toutes les incompatibilités.
Entrée JSON invalide
Le schéma ou le document n’est pas un JSON valide.
Cette première version affiche la première erreur et ne liste pas toutes les incompatibilités.
Schéma
Document
Schéma invalide
Le schéma JSON est invalide.
Schéma non pris en charge
Ce schéma JSON utilise une fonctionnalité non prise en charge.
Validation interrompue
La validation n’a pas pu aboutir. Vous pouvez réessayer.
Mots-clés pris en charge, références et limites
À propos de ce validateur
Cet outil accepte les schémas objet JSON déclarant http://json-schema.org/draft-07/schema#. Il implémente un sous-ensemble de draft-07.
Mots-clés pris en charge
$schema, title, description, type, properties, required, items, additionalProperties, enum, const, minimum, maximum, exclusiveMinimum, exclusiveMaximum, minLength, maxLength et pattern.
Mots-clés non pris en charge
Les autres mots-clés sont rejetés, notamment $ref, definitions, format, allOf, anyOf, oneOf, not, dependencies et les mots-clés conditionnels.
Les motifs suivent une grammaire restreinte : lettres et chiffres ASCII, ponctuation regex échappée, classes de caractères simples, ancres de début/fin et au plus un quantificateur ? ou {min,max} (max. 32).
Les schémas ne sont jamais téléchargés. Les références distantes comme $ref ne sont pas suivies et ne sont pas prises en charge.
Limites de ressources
Schéma : 100 000 unités de code UTF-16 ; profondeur du parseur 60, 5 000 nœuds, 1 000 000 unités de travail du parseur et 100 diagnostics. Le préflight autorise 5 000 visites structurelles, une profondeur de 40, 5 000 noms, 50 motifs de 128 unités maximum chacun et 100 membres enum.
Document : 250 000 unités de code UTF-16 ; profondeur du parseur 100, 25 000 nœuds, 1 000 000 unités de travail du parseur et 100 diagnostics. Une chaîne vérifiée par pattern est limitée à 10 000 unités de code.
La validation complète dispose de 5 000 000 unités de travail, 8 192 unités de code variables par diagnostic et 8 secondes. L’interface ne permet pas d’augmenter ces limites.
Valider un document avec un schéma
Saisissez un objet JSON Schema dans Schéma JSON et la valeur JSON à vérifier dans Document JSON, puis choisissez Valider. Les deux entrées sont d’abord analysées comme du JSON strict, le schéma entier est vérifié, puis le document est évalué. La première erreur est affichée ; cette première version ne répertorie pas toutes les incompatibilités. Un résultat positif signifie que le document est valide pour le sous-ensemble pris en charge par cet outil, et non pour toutes les fonctionnalités de draft-07.
Choisissez Charger un exemple pour remplir les deux éditeurs avec cette paire valide. Vous pouvez la modifier ; la validation ne démarre qu’après avoir choisi Valider.
{
"$schema": "http://json-schema.org/draft-07/schema#",
"type": "object",
"properties": {
"name": { "type": "string", "minLength": 1 },
"active": { "type": "boolean" }
},
"required": ["name"],
"additionalProperties": false
}
{
"name": "Ada",
"active": true
}
Sous-ensemble de draft-07 pris en charge
Le schéma racine doit être un objet JSON et déclarer la valeur exacte
http://json-schema.org/draft-07/schema# dans $schema. Les mots-clés et
formes suivants sont pris en charge :
$schema,titleetdescriptionavec des valeurs textuelles.typecomme un type ou une liste non vide et sans doublons :null,boolean,object,array,number,integeroustring.propertiescomme objet dont les valeurs sont des schémas ;requiredcomme tableau de noms de propriétés uniques ; etadditionalPropertiescomme booléen ou schéma.itemscomme un schéma. Les tableaux de schémas pouritemsne sont pas pris en charge.enumcomme tableau non vide de 100 valeurs JSON maximum etconstcomme toute valeur JSON.minimum,maximum,exclusiveMinimumetexclusiveMaximumcomme nombres finis.minLengthetmaxLengthcomme entiers non négatifs. La longueur du texte est comptée en points de code Unicode.patterncomme texte respectant la grammaire restreinte décrite ci-dessous.
properties décrit comment vérifier une propriété lorsqu’elle existe ; cela ne
la rend pas obligatoire. Seuls les noms indiqués dans required doivent être
présents. Une propriété absente et une propriété dont la valeur est null sont
différentes : required vérifie la présence et type vérifie la valeur.
additionalProperties accepte, rejette ou vérifie les autres propriétés ; le
mot-clé ne les supprime ni ne les réécrit dans le document.
Mots-clés et motifs rejetés
Tout mot-clé qui ne figure pas dans la liste ci-dessus est rejeté avant la
validation du document. Cela inclut $ref, même lorsqu’il pointe vers une
définition locale, ainsi que definitions, format, allOf, anyOf, oneOf,
not, dependencies et les mots-clés conditionnels if, then et else. Les
références ne sont pas résolues, et l’outil ne télécharge jamais de schéma ni
n’interroge de service distant.
Les motifs se limitent aux lettres et chiffres ASCII, à la ponctuation regex
échappée, aux classes de caractères simples et à ^ ou $ uniquement au début
ou à la fin. Chaque motif accepte au plus un quantificateur ? ou un
quantificateur borné {min,max}, dont le maximum est 32. Les autres
fonctionnalités des expressions régulières sont rejetées. Un motif peut
contenir jusqu’à 128 unités de code, et une chaîne du document vérifiée par un
motif jusqu’à 10 000 unités.
JSON strict et précision numérique
Les deux éditeurs exigent du JSON strict. Les commentaires, virgules finales, clés d’objet en double et contenu supplémentaire sont des erreurs. Les nombres qui ne peuvent pas être représentés de manière sûre en nombres JavaScript sont rejetés et ne donnent aucun résultat de conformité. La validation porte sur la valeur JSON analysée ; il est impossible de distinguer les écritures numériques une fois la précision perdue.
Limites d’entrée et d’opération
L’éditeur de schéma accepte jusqu’à 100 000 unités de code UTF-16. L’analyse du
schéma est limitée à une profondeur de 60, 5 000 nœuds JSON, 1 000 000 unités de
travail d’analyse et 100 diagnostics. Le préflight autorise 5 000 visites
structurelles, une profondeur de schéma de 40, 5 000 noms dans properties et
required, 50 motifs de 128 unités maximum chacun et 100 valeurs par enum.
L’éditeur de document accepte jusqu’à 250 000 unités de code UTF-16. Son analyse
est limitée à une profondeur de 100, 25 000 nœuds JSON, 1 000 000 unités de
travail d’analyse et 100 diagnostics. Les chaînes vérifiées par pattern sont
limitées à 10 000 unités de code. La validation complète dispose de 5 000 000
unités de travail, 8 192 unités de code variables par diagnostic et 8 secondes.
Une limite atteinte interrompt la validation sans déclarer le document valide
ou non conforme.
Traitement local
L’analyse et la validation s’exécutent dans un Worker local de votre navigateur. Aucune entrée n’est envoyée au serveur de l’application et aucun schéma n’est téléchargé. Le texte n’est stocké ni dans l’URL, ni dans les cookies, ni dans le stockage du navigateur. Modifier une entrée efface l’ancien résultat et arrête le travail lié à l’ancien texte. Annuler arrête une opération en cours et conserve les deux entrées ; Tout effacer les supprime explicitement.