列挙値と定数 — 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の enumconst キーワードは、プロパティが取りうる値を特定の値に限定するために使用されます。

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バージョン指定、イベントタイプの判別などで使用します。

試してみる — JSON Schema Validator

フルツールを開く