JSON Schema

    構造

    {
      "$schema": "http://json-schema.org/draft-07/schema#",
      "title": "ほげほげ",
      "type": "object",
      "properties": {},
      "required": []
    }

    $schema

    これには今現在(2019-04)最新のhttp://json-schema.org/draft-07/schema#バージョンを指定します。

    title

    そのスキーマの説明。

    type

    ルートに置かれるtypeは、その JSON のルートがどんな要素かを指定します。objectarrayが指定できます。

    properties

    type:objectな時、どんなプロパティがあるかを指定していきます。例えば以下は、fooプロパティが置けるという意味になります。

    {
      "properties": {
        "foo": {
          "description": "説明(オプション)",
          "type": "string"
        }
      }
    }

    この各プロパティのタイプには

    • string
    • number
    • object
    • array
    • boolean
    • null があります。

    required

    type:objectな時、ここに羅列したプロパティは必ず設定しなければならないという意味になります。以下はfooを必須にする例です。

    {
      "properties": {"foo": {}},
      "required": ["foo"]
    }