マニュアル: JSON Schema

投稿日: 更新日:

バリデーション

ajvが簡単で良い。

npm install -g ajv-cli
ajv validate -s スキーマ -d データ

簡単なJSON Schemaの作り方

  1. https://www.jsonschema.net/ に行く
  2. ギアアイコンをクリックして設定
    • Annotationsの「Infer Title」「Infer Default」「Infej Example」を削除(どうせ使わない)
      • これらはそれぞれtitle, default, exampleに該当する。
      • idも基本的には不要。
  3. JSONを貼り付ける
  4. INFER SCHEMAボタンを押す
    • inferは推論という意味。よって「スキーマを推論」になる。

これでそれっぽいものができるので、カスタマイズしていくのもいいかも。

ただしこれで作成したものは以下の点に注意する必要がある。

  • 改行が入っているとダメ。正規表現を "^(\n|.)*$" にするとOK。

書き方

type: 型

items: arrayの中の定義

例えばstringのarrayを表す書き方は以下の通り。

{
    "type": "array",
    "items": {
        "type": "string"
    }
}

enum: 許容する値の一覧

例えば "red", "green" のみを許容する書き方は以下の通り。

{
    "type": "string",
    "enum": ["red", "green"]
}

properties: オブジェクトのプロパティ

オブジェクトに対して、文字列の値を持つ"key"プロパティを定義する場合。

{
    "type": "object",
    "properties": {
        "key": {
            "type": "string"
        }
    }
}

必須項目は"required"を定義する。

{
    "type": "object",
    "properties": {
        "key": {
            "type": "string"
        }
    },
    "required": ["key"]
}

不明なプロパティをエラーにしたい

additionalProperties: false を追加

oneOf, anyOf, allOf

配列のいずれか1つ、任意のもの、全てを表す

公式サイト

外部サイト