配列バリデーション — JSON Schemaで配列の制約を定義

JSON Schemaで配列の型、長さ、要素の制約を定義する方法を学びます。items、minItems、maxItemsなどのキーワードを解説。

Basic Types

JSON Schema

{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "type": "object",
  "properties": {
    "tags": {
      "type": "array",
      "items": {
        "type": "string",
        "minLength": 1,
        "maxLength": 50
      },
      "minItems": 1,
      "maxItems": 10
    },
    "scores": {
      "type": "array",
      "items": {
        "type": "number",
        "minimum": 0,
        "maximum": 100
      }
    }
  },
  "required": ["tags"]
}

Test Data

{
  "tags": ["javascript", "typescript", "react"],
  "scores": [95.5, 87, 100, 72.3]
}

詳細な説明

JSON Schemaの array 型は、JSON配列のバリデーションに使用されます。配列の要素型、長さ、一意性などを制御するための豊富なキーワードが用意されています。

主なキーワード:

  • items: 配列の各要素が従うべきスキーマを定義します。
  • minItems / maxItems: 配列の最小・最大要素数を指定します。
  • uniqueItems: true に設定すると、重複する要素を禁止します。
  • contains: 配列内に少なくとも1つ一致する要素があることを要求します。

例えば、タグのリストを items: { type: "string" }minItems: 1maxItems: 10uniqueItems: true と定義すれば、1〜10個のユニークな文字列タグを持つ配列のみを許可できます。

ユースケース

タグリスト、ユーザーIDの配列、注文明細などの配列データをバリデーションする際に使用します。

試してみる — JSON Schema Validator

フルツールを開く