JSON - Schemat
Schemat JSON to specyfikacja formatu opartego na JSON do definiowania struktury danych JSON. Został napisany w ramach projektu IETF, który wygasł w 2011 roku. Schemat JSON -
- Opisuje istniejący format danych.
- Przejrzysta, czytelna dla człowieka i maszyny dokumentacja.
- Pełna walidacja strukturalna, przydatna do testów automatycznych.
- Pełna walidacja strukturalna, weryfikacja danych przesłanych przez klienta.
Biblioteki walidacji schematu JSON
Obecnie dostępnych jest kilka walidatorów dla różnych języków programowania. Obecnie najbardziej kompletnym i zgodnym walidatorem schematu JSON jest JSV.
Języki | Biblioteki |
---|---|
do | WJElement (LGPLv3) |
Jawa | json-schema-validator (LGPLv3) |
.NETTO | Json.NET (MIT) |
ActionScript 3 | Frigga (MIT) |
Haskell | aeson-schema (MIT) |
Pyton | Jsonschema |
Rubin | autoparse (ASL 2.0); ruby-jsonschema (MIT) |
PHP | php-json-schema (MIT). json-schema (Berkeley) |
JavaScript | Uporządkowany (BSD); JSV; json-schema; Matic (MIT); Dojo; Wytrwaj (zmodyfikowany BSD lub AFL 2.0); schema.js. |
Przykład schematu JSON
Poniżej podano podstawowy schemat JSON, który obejmuje klasyczny opis katalogu produktów -
{
"$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"]
}
Sprawdźmy różne ważne słowa kluczowe, które można zastosować w tym schemacie -
Sr.No. | Słowo kluczowe i opis |
---|---|
1 | $schema Słowo kluczowe $ schema określa, że ten schemat został napisany zgodnie z roboczą specyfikacją v4. |
2 | title Użyjesz tego, aby nadać tytuł swojemu schematowi. |
3 | description Mały opis schematu. |
4 | type Słowo kluczowe type definiuje pierwsze ograniczenie dotyczące naszych danych JSON: musi to być obiekt JSON. |
5 | properties Definiuje różne klucze i ich typy wartości, minimalne i maksymalne wartości, które mają być używane w pliku JSON. |
6 | required To zachowuje listę wymaganych właściwości. |
7 | minimum To jest ograniczenie, które należy nałożyć na wartość i reprezentuje minimalną dopuszczalną wartość. |
8 | exclusiveMinimum Jeśli „exclusiveMinimum” jest obecne i ma wartość logiczną true, instancja jest prawidłowa, jeśli jest ściśle większa niż wartość „minimum”. |
9 | maximum To jest ograniczenie, które należy nałożyć na wartość i reprezentuje maksymalną dopuszczalną wartość. |
10 | exclusiveMaximum Jeśli „exclusiveMaximum” jest obecne i ma wartość logiczną true, instancja jest prawidłowa, jeśli jest dokładnie niższa niż wartość „maximum”. |
11 | multipleOf Wystąpienie liczbowe jest poprawne w stosunku do „multipleOf”, jeśli wynikiem podziału wystąpienia przez wartość tego słowa kluczowego jest liczba całkowita. |
12 | maxLength Długość wystąpienia ciągu definiuje się jako maksymalną liczbę jego znaków. |
13 | minLength Długość wystąpienia ciągu definiuje się jako minimalną liczbę jego znaków. |
14 | pattern Instancja ciągu jest uznawana za prawidłową, jeśli wyrażenie regularne pasuje do instancji. |
Możesz sprawdzić http://json-schema.orgaby zapoznać się z pełną listą słów kluczowych, których można użyć podczas definiowania schematu JSON. Powyższy schemat może służyć do testowania poprawności następującego kodu JSON -
[
{
"id": 2,
"name": "An ice sculpture",
"price": 12.50,
},
{
"id": 3,
"name": "A blue mouse",
"price": 25.50,
}
]