JSON-スキーマ
JSONスキーマは、JSONデータの構造を定義するためのJSONベースの形式の仕様です。2011年に期限切れになったIETFドラフトの下で書かれました。JSONスキーマ-
- 既存のデータ形式について説明します。
- 明確で、人間と機械が読めるドキュメント。
- 自動テストに役立つ完全な構造検証。
- 完全な構造検証、クライアントから送信されたデータの検証。
JSONスキーマ検証ライブラリ
現在、さまざまなプログラミング言語で利用できるバリデーターがいくつかあります。現在利用可能な最も完全で準拠したJSONスキーマバリデーターはJSVです。
言語 | ライブラリ |
---|---|
C | WJElement(LGPLv3) |
Java | json-schema-validator(LGPLv3) |
。ネット | Json.NET(MIT) |
ActionScript 3 | フリッガ(MIT) |
Haskell | アイソーンスキーマ(MIT) |
Python | Jsonschema |
ルビー | 自動解析(ASL 2.0); ruby-jsonschema(MIT) |
PHP | php-json-schema(MIT)。json-schema(バークレー) |
JavaScript | 整然とした(BSD); JSV; json-スキーマ; マティック(MIT); 道場; 忍耐強い(変更されたBSDまたはAFL 2.0); schema.js。 |
JSONスキーマの例
以下に示すのは、古典的な製品カタログの説明をカバーする基本的なJSONスキーマです。
{
"$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"]
}
このスキーマで使用できるさまざまな重要なキーワードを確認してみましょう-
シニア番号 | キーワードと説明 |
---|---|
1 | $schema $ schemaキーワードは、このスキーマがドラフトv4仕様に従って記述されていることを示しています。 |
2 | title これを使用して、スキーマにタイトルを付けます。 |
3 | description スキーマの簡単な説明。 |
4 | type typeキーワードは、JSONデータの最初の制約を定義します。JSONオブジェクトである必要があります。 |
5 | properties JSONファイルで使用されるさまざまなキーとその値のタイプ、最小値と最大値を定義します。 |
6 | required これにより、必要なプロパティのリストが保持されます。 |
7 | minimum これは値に課せられる制約であり、最小許容値を表します。 |
8 | exclusiveMinimum 「exclusiveMinimum」が存在し、ブール値がtrueの場合、インスタンスは「minimum」の値よりも厳密に大きい場合に有効です。 |
9 | maximum これは値に課せられる制約であり、最大許容値を表します。 |
10 | exclusiveMaximum 「exclusiveMaximum」が存在し、ブール値がtrueの場合、インスタンスは「maximum」の値よりも厳密に低い場合に有効です。 |
11 | multipleOf インスタンスをこのキーワードの値で除算した結果が整数の場合、数値インスタンスは「multipleOf」に対して有効です。 |
12 | maxLength 文字列インスタンスの長さは、その文字の最大数として定義されます。 |
13 | minLength 文字列インスタンスの長さは、その文字の最小数として定義されます。 |
14 | pattern 文字列インスタンスは、正規表現がインスタンスと正常に一致した場合に有効と見なされます。 |
あなたはチェックすることができます http://json-schema.orgJSONスキーマの定義に使用できるキーワードの完全なリストについては。上記のスキーマを使用して、次のJSONコードの有効性をテストできます-
[
{
"id": 2,
"name": "An ice sculpture",
"price": 12.50,
},
{
"id": 3,
"name": "A blue mouse",
"price": 25.50,
}
]