構造

{
  "$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"]
}