JSON Schema is a specification for JSON
based format for defining the structure of JSON data. It was written under IETF
draft which expired in 2011. JSON Schema −
- Describes your existing data format.
- Clear, human- and machine-readable documentation.
- Complete structural validation, useful for
automated testing.
- Complete structural validation, validating
client-submitted data.
-
JSON Schema Validation
Libraries:
There
are several validators currently available for different programming languages.
Currently the most complete and compliant JSON Schema validator available is
JSV.
Languages
|
Libraries
|
C
|
WJElement (LGPLv3)
|
Java
|
json-schema-validator (LGPLv3)
|
.NET
|
Json.NET (MIT)
|
ActionScript 3
|
Frigga (MIT)
|
Haskell
|
aeson-schema (MIT)
|
Python
|
Jsonschema
|
Ruby
|
autoparse (ASL 2.0); ruby-jsonschema
(MIT)
|
PHP
|
php-json-schema (MIT). json-schema
(Berkeley)
|
JavaScript
|
Orderly (BSD); JSV; json-schema; Matic
(MIT); Dojo; Persevere (modified BSD or AFL 2.0); schema.js.
|
-
JSON Schema Example:
Given
below is a basic JSON schema, which covers a classical product catalog
description –
{
"$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"]
}
Let's the check various important keywords that can be used
in this schema –
S. No.
Keyword &
Description
1
$schema
The $schema keyword states that this
schema is written according to the draft v4 specification.
2
title
You will use this to give a title to
your schema.
3
description
A little description of the schema.
4
type
The type keyword defines the first
constraint on our JSON data: it has to be a JSON Object.
5
properties
Defines various keys and their value
types, minimum and maximum values to be used in JSON file.
6
required
This keeps a list of required
properties.
7
minimum
This is the constraint to be put on the
value and represents minimum acceptable value.
8
exclusiveMinimum
If "exclusiveMinimum" is
present and has boolean value true, the instance is valid if it is strictly
greater than the value of "minimum".
9
maximum
This is the constraint to be put on the
value and represents maximum acceptable value.
10
exclusiveMaximum
If "exclusiveMaximum" is
present and has boolean value true, the instance is valid if it is strictly
lower than the value of "maximum".
11
multipleOf
A numeric instance is valid against
"multipleOf" if the result of the division of the instance by this
keyword's value is an integer.
12
maxLength
The length of a string instance is
defined as the maximum number of its characters.
13
minLength
The length of a string instance is
defined as the minimum number of its characters.
14
pattern
A string instance is considered valid if
the regular expression matches the instance successfully.
You can check a http://json-schema.org for the complete list of keywords that can be used in
defining a JSON schema. The above schema can be used to test the validity of
the following JSON code −
[
{
"id":2,
"name":"An ice sculpture",
"price":12.50,
},
{
"id":3,
"name":"A blue mouse",
"price":25.50,
}
]
No comments:
Post a Comment