JSON スキーマ

JSON スキーマでは、アプリケーション固有の JSON ドキュメントを定義するための用語集を提供しています。 このトピックの権限のあるリソースは json-schema.orgです。

最も基本的なスキーマ

最も基本的なスキーマはです

{ }

空の JSON オブジェクトまたは ( 仕様のドラフト 6 以降 )

true

有効な JSON を効果的に受け入れます。 設定を含むすべてのものを拒否します

false

をスキーマとして使用します。

$ スキーマでスキーマを宣言しています

JSON の ルートで $ スキーマキーワードを使用して、 JSON スキーマフラグメントがスキーマであることを宣言することをお勧めします。

{ "$schema": "http://json-schema.org/schema#" }

スキーマが特定のバージョンに対して記述されている場合は、次のように、パスにドラフト名を含める必要があります。

{ "$schema": "http://json-schema.org/draft-04/schema#" }

$id のスキーマを指定します

スキーマごとに一意の識別子を含めることをお勧めします

{ "$id": "http://yourdomain.com/schemas/myschema.json" }

警告

HERE Data Hub は外部スキーマリソースをロードしません。

$id は、 JSON ポインタを使用せずにサブスキーマを参照するために使用することもできます。

{
  "$schema": "http://json-schema.org/draft-07/schema#",

  "definitions": {
    "address": {
      "$id": "#address",
      "type": "object",
      "properties": {
        "street_address": { "type": "string" },
        "city":           { "type": "string" },
        "state":          { "type": "string" }
      },
      "required": ["street_address", "city", "state"]
    }
  },

  "type": "object",

  "properties": {
    "billing_address": { "$ref": "#address" },
    "shipping_address": { "$ref": "#address" }
  }
}

警告

スキーマの $id プロパティには、空白文字を含めることはできません。

プリミティブタイプ

スキーマが適用される JSON ドキュメントは、「インスタンス」と呼ばれます。 インスタンスには、 6 つのプリミティブタイプのいずれかと、使用可能な値の範囲があります。

  1. オブジェクト
    : 文字列をインスタンスにマッピングする順序のないプロパティのセット
  2. 配列
    : インスタンスの順序付きリスト
  3. 文字列 :
    Unicode 文字の文字列
  4. 番号
    : 任意の精度の 10 進数を底とする値
  5. ブール型:
    「 true 」または「 false 」の値</dd>
  6. 特殊な手順
    : JSON の特殊な手順です

JSON スキーマの概要 では、 JSON スキーマの概要と、上記のサブタイプの詳細について説明します。

GeoJSON の JSON スキーマの例

{
  "$schema": "http://json-schema.org/draft-07/schema#",
  "type": "object",
  "properties": {
    "type": {
      "type": "string"
    },
    "geometry": {
      "oneof":[
        {
          "type": "null"
        },{
          "type":"object"
        }
      ]
    },
    "properties": {
      "type": "object",
      "properties": {
        "name": {
          "type": "string"
        }
      },
      "required": [
        "name"
      ]
    }
  },
  "required": [
    "type",
    "geometry",
    "properties"
  ]
}

」に一致する結果は 件です

    」に一致する結果はありません