JSON - Esquema

Esquema JSON é uma especificação para formato baseado em JSON para definir a estrutura de dados JSON. Foi escrito sob o rascunho da IETF que expirou em 2011. JSON Schema -

  • Descreve seu formato de dados existente.
  • Documentação clara, legível por humanos e por máquina.
  • Validação estrutural completa, útil para testes automatizados.
  • Validação estrutural completa, validando dados enviados pelo cliente.

Bibliotecas de validação de esquema JSON

Existem vários validadores atualmente disponíveis para diferentes linguagens de programação. Atualmente, o validador JSON Schema mais completo e compatível disponível é o JSV.

línguas Bibliotecas
C WJElement (LGPLv3)
Java json-schema-validator (LGPLv3)
.INTERNET Json.NET (MIT)
ActionScript 3 Frigga (MIT)
Haskell esquema-aeson (MIT)
Pitão Jsonschema
Rubi autoparse (ASL 2.0); rubi-jsonschema (MIT)
PHP php-json-schema (MIT). json-schema (Berkeley)
JavaScript Ordenado (BSD); JSV; json-schema; Matic (MIT); Dojo; Persevere (BSD modificado ou AFL 2.0); schema.js.

Exemplo de esquema JSON

A seguir está um esquema JSON básico, que cobre uma descrição clássica do catálogo de produtos -

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

Vamos verificar várias palavras-chave importantes que podem ser usadas neste esquema -

Sr. Não. Palavra-chave e descrição
1

$schema

A palavra-chave $ schema afirma que esse esquema foi escrito de acordo com a especificação do rascunho v4.

2

title

Você usará isso para dar um título ao seu esquema.

3

description

Uma pequena descrição do esquema.

4

type

A palavra-chave type define a primeira restrição em nossos dados JSON: tem que ser um objeto JSON.

5

properties

Define várias chaves e seus tipos de valor, valores mínimos e máximos a serem usados ​​no arquivo JSON.

6

required

Isso mantém uma lista das propriedades necessárias.

7

minimum

Esta é a restrição a ser colocada no valor e representa o valor mínimo aceitável.

8

exclusiveMinimum

Se "exclusiveMinimum" estiver presente e tiver valor booleano true, a instância será válida se for estritamente maior que o valor "minimum".

9

maximum

Esta é a restrição a ser colocada no valor e representa o valor máximo aceitável.

10

exclusiveMaximum

Se "exclusiveMaximum" estiver presente e tiver valor booleano true, a instância será válida se for estritamente inferior ao valor "maximum".

11

multipleOf

Uma instância numérica é válida contra "multipleOf" se o resultado da divisão da instância pelo valor desta palavra-chave for um número inteiro.

12

maxLength

O comprimento de uma instância de string é definido como o número máximo de seus caracteres.

13

minLength

O comprimento de uma instância de string é definido como o número mínimo de seus caracteres.

14

pattern

Uma instância de string é considerada válida se a expressão regular corresponder à instância com sucesso.

Você pode verificar um http://json-schema.orgpara obter a lista completa de palavras-chave que podem ser usadas na definição de um esquema JSON. O esquema acima pode ser usado para testar a validade do seguinte código JSON -

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