列挙値と定数 — enumとconstの使い方
JSON Schemaの enum と const キーワードで許容される値を限定する方法を解説します。
Advanced
JSON Schema
{
"$schema": "https://json-schema.org/draft/2020-12/schema",
"type": "object",
"properties": {
"status": {
"type": "string",
"enum": ["pending", "processing", "shipped", "delivered", "cancelled"]
},
"priority": {
"enum": [1, 2, 3, "urgent"]
},
"apiVersion": {
"const": "2024-01-01"
},
"currency": {
"type": "string",
"enum": ["USD", "EUR", "GBP", "JPY", "CAD"]
},
"isTest": {
"const": false
}
},
"required": ["status", "apiVersion", "currency"]
}Test Data
{
"status": "shipped",
"priority": "urgent",
"apiVersion": "2024-01-01",
"currency": "USD",
"isTest": false
}詳細な説明
JSON Schemaの enum と const キーワードは、プロパティが取りうる値を特定の値に限定するために使用されます。
enumキーワード:
{
"type": "string",
"enum": ["red", "green", "blue"]
}
enum は値が指定された配列内のいずれかの要素と一致することを要求します。異なる型の値を混在させることも可能です: "enum": ["auto", 0, null, true]
constキーワード:
{
"const": "active"
}
const は値が指定した単一の値と完全に一致することを要求します。enum の要素が1つだけの場合と同等ですが、意図がより明確になります。
使い分け:
- 複数の選択肢:
enumを使用 - 固定値:
constを使用 oneOf内のdiscriminatorプロパティ:constが最適
enum はフォームのドロップダウン選択肢、ステータスコード、タイプフィールドなどに広く使用されます。
ユースケース
ステータス値(active/inactive)、カテゴリ選択、APIバージョン指定、イベントタイプの判別などで使用します。