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,
   }
]