JSON - Schéma
Le schéma JSON est une spécification du format basé sur JSON pour définir la structure des données JSON. Il a été rédigé sous le projet IETF qui a expiré en 2011. Schéma JSON -
- Décrit votre format de données existant.
- Documentation claire, lisible par l'homme et la machine.
- Validation structurelle complète, utile pour les tests automatisés.
- Validation structurelle complète, validation des données soumises par le client.
Bibliothèques de validation de schéma JSON
Il existe actuellement plusieurs validateurs disponibles pour différents langages de programmation. Actuellement, le validateur de schéma JSON le plus complet et conforme disponible est JSV.
Langues | Bibliothèques |
---|---|
C | WJElement (LGPLv3) |
Java | json-schema-validator (LGPLv3) |
.NET | Json.NET (MIT) |
ActionScript 3 | Frigga (MIT) |
Haskell | aeson-schema (MIT) |
Python | Jsonschema |
Rubis | autoparse (ASL 2.0); ruby-jsonschema (MIT) |
PHP | php-json-schema (MIT). json-schema (Berkeley) |
JavaScript | Ordonné (BSD); JSV; json-schema; Matic (MIT); Dojo; Persévérer (BSD ou AFL 2.0 modifié); schema.js. |
Exemple de schéma JSON
Vous trouverez ci-dessous un schéma JSON de base, qui couvre une description classique du catalogue de produits -
{
"$schema": "http://json-schema.org/draft-04/schema#",
"title": "Product",
"description": "A product from Acme's catalog",
"type": "object",
"properties": {
"id": {
"description": "The unique identifier for a product",
"type": "integer"
},
"name": {
"description": "Name of the product",
"type": "string"
},
"price": {
"type": "number",
"minimum": 0,
"exclusiveMinimum": true
}
},
"required": ["id", "name", "price"]
}
Vérifions divers mots-clés importants pouvant être utilisés dans ce schéma -
N ° Sr. | Mot-clé et description |
---|---|
1 | $schema Le mot clé $ schema indique que ce schéma est écrit conformément à la spécification provisoire v4. |
2 | title Vous l'utiliserez pour donner un titre à votre schéma. |
3 | description Une petite description du schéma. |
4 | type Le mot-clé type définit la première contrainte sur nos données JSON: il doit s'agir d'un objet JSON. |
5 | properties Définit diverses clés et leurs types de valeur, les valeurs minimales et maximales à utiliser dans le fichier JSON. |
6 | required Cela conserve une liste des propriétés requises. |
sept | minimum C'est la contrainte à mettre sur la valeur et représente la valeur minimale acceptable. |
8 | exclusiveMinimum Si "exclusiveMinimum" est présent et a la valeur booléenne true, l'instance est valide si elle est strictement supérieure à la valeur de "minimum". |
9 | maximum C'est la contrainte à mettre sur la valeur et représente la valeur maximale acceptable. |
dix | exclusiveMaximum Si "exclusiveMaximum" est présent et a la valeur booléenne true, l'instance est valide si elle est strictement inférieure à la valeur de "maximum". |
11 | multipleOf Une instance numérique est valide contre "multipleOf" si le résultat de la division de l'instance par la valeur de ce mot clé est un entier. |
12 | maxLength La longueur d'une instance de chaîne est définie comme le nombre maximum de ses caractères. |
13 | minLength La longueur d'une instance de chaîne est définie comme le nombre minimum de ses caractères. |
14 | pattern Une instance de chaîne est considérée comme valide si l'expression régulière correspond à l'instance avec succès. |
Vous pouvez vérifier un http://json-schema.orgpour obtenir la liste complète des mots-clés pouvant être utilisés pour définir un schéma JSON. Le schéma ci-dessus peut être utilisé pour tester la validité du code JSON suivant -
[
{
"id": 2,
"name": "An ice sculpture",
"price": 12.50,
},
{
"id": 3,
"name": "A blue mouse",
"price": 25.50,
}
]