配列バリデーション — 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: 1、maxItems: 10、uniqueItems: true と定義すれば、1〜10個のユニークな文字列タグを持つ配列のみを許可できます。
ユースケース
タグリスト、ユーザーIDの配列、注文明細などの配列データをバリデーションする際に使用します。