JSON: esquema

JSON Schema es una especificación para el formato basado en JSON para definir la estructura de datos JSON. Fue escrito bajo el borrador de IETF que expiró en 2011. Esquema JSON -

  • Describe su formato de datos existente.
  • Documentación clara, legible por humanos y máquinas.
  • Validación estructural completa, útil para pruebas automatizadas.
  • Validación estructural completa, validando los datos enviados por el cliente.

Bibliotecas de validación de esquemas JSON

Actualmente hay varios validadores disponibles para diferentes lenguajes de programación. Actualmente, el validador de esquemas JSON más completo y compatible disponible es JSV.

Idiomas Bibliotecas
C WJElement (LGPLv3)
Java json-schema-validator (LGPLv3)
.RED Json.NET (MIT)
ActionScript 3 Frigga (MIT)
Haskell esquema-aeson (MIT)
Pitón Jsonschema
Rubí autoparse (ASL 2.0); ruby-jsonschema (MIT)
PHP php-json-schema (MIT). json-esquema (Berkeley)
JavaScript Ordenado (BSD); JSV; json-schema; Matic (MIT); Dojo; Persevere (BSD modificado o AFL 2.0); schema.js.

Ejemplo de esquema JSON

A continuación se muestra un esquema JSON básico, que cubre una descripción clásica del catálogo de productos:

{
   "$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"]
}

Comprobemos varias palabras clave importantes que se pueden usar en este esquema:

No Señor. Palabra clave y descripción
1

$schema

La palabra clave $ schema indica que este esquema está escrito de acuerdo con el borrador de la especificación v4.

2

title

Utilizará esto para dar un título a su esquema.

3

description

Una pequeña descripción del esquema.

4

type

La palabra clave type define la primera restricción en nuestros datos JSON: tiene que ser un objeto JSON.

5

properties

Define varias claves y sus tipos de valor, valores mínimos y máximos que se utilizarán en el archivo JSON.

6

required

Esto mantiene una lista de propiedades requeridas.

7

minimum

Esta es la restricción que se aplicará al valor y representa el valor mínimo aceptable.

8

exclusiveMinimum

Si "exclusivoMínimo" está presente y tiene un valor booleano verdadero, la instancia es válida si es estrictamente mayor que el valor de "mínimo".

9

maximum

Ésta es la restricción que se aplicará al valor y representa el valor máximo aceptable.

10

exclusiveMaximum

Si "exclusiveMaximum" está presente y tiene un valor booleano verdadero, la instancia es válida si es estrictamente menor que el valor de "maximum".

11

multipleOf

Una instancia numérica es válida contra "multipleOf" si el resultado de la división de la instancia por el valor de esta palabra clave es un número entero.

12

maxLength

La longitud de una instancia de cadena se define como el número máximo de sus caracteres.

13

minLength

La longitud de una instancia de cadena se define como el número mínimo de sus caracteres.

14

pattern

Una instancia de cadena se considera válida si la expresión regular coincide con la instancia correctamente.

Puede comprobar un http://json-schema.orgpara obtener la lista completa de palabras clave que se pueden utilizar para definir un esquema JSON. El esquema anterior se puede utilizar para probar la validez del siguiente código JSON:

[
   {
      "id": 2,
      "name": "An ice sculpture",
      "price": 12.50,
   },
	
   {
      "id": 3,
      "name": "A blue mouse",
      "price": 25.50,
   }
]