Json-schema

提供:Dev Guides
移動先:案内検索

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*

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