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