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