Json-schema
JSON-スキーマ
JSONスキーマは、JSONデータの構造を定義するためのJSONベースの形式の仕様です。 2011年に失効したIETFドラフトの下で作成されました。 JSONスキーマ-
- 既存のデータ形式について説明します。
- 人間および機械が読み取り可能な明確なドキュメント。
- 自動テストに役立つ完全な構造検証。 *クライアントが送信したデータを検証する完全な構造検証。
JSONスキーマ検証ライブラリ
現在、さまざまなプログラミング言語で使用できる検証ツールがいくつかあります。 現在、最も完全で準拠しているJSONスキーマバリデーターは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スキーマの例
以下は、古典的な製品カタログの説明をカバーする基本的な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"]
}
このスキーマで使用できるさまざまな重要なキーワードを確認しましょう-
Sr.No. | Keyword & Description |
---|---|
1 |
$ 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 文字列インスタンスは、正規表現がインスタンスと正常に一致した場合に有効と見なされます。 |
JSONスキーマの定義に使用できるキーワードの完全なリストは、http://json-schema.org/latest/json-schema-validationl [http://json-schema.org]で確認できます。 上記のスキーマは、次のJSONコードの有効性をテストするために使用できます-
[
{
"id": 2,
"name": "An ice sculpture",
"price": 12.50,
},
{
"id": 3,
"name": "A blue mouse",
"price": 25.50,
}
]