必須プロパティ — JSON Schemaのrequiredキーワード

JSON Schemaの required キーワードでオブジェクトの必須フィールドを定義する方法を解説します。

Object Constraints

JSON Schema

{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "type": "object",
  "properties": {
    "id": {
      "type": "integer"
    },
    "name": {
      "type": "string",
      "minLength": 1
    },
    "email": {
      "type": "string",
      "format": "email"
    },
    "phone": {
      "type": "string"
    },
    "role": {
      "type": "string",
      "enum": ["admin", "editor", "viewer"],
      "default": "viewer"
    }
  },
  "required": ["id", "name", "email"]
}

Test Data

{
  "id": 1001,
  "name": "Alice Chen",
  "email": "alice@example.com",
  "role": "editor"
}

詳細な説明

JSON Schemaの required キーワードは、オブジェクト内に必ず存在しなければならないプロパティ名の配列を指定します。required に含まれないプロパティはオプショナル(任意)として扱われます。

重要なポイント:

  • required はプロパティの存在のみをチェックします。値が null や空文字列であっても、プロパティが存在すれば検証は通過します。
  • requiredproperties と組み合わせて使用するのが一般的です。
  • properties に定義されていないプロパティ名を required に含めることも可能です。
{
  "type": "object",
  "required": ["name", "email"],
  "properties": {
    "name": { "type": "string" },
    "email": { "type": "string", "format": "email" },
    "phone": { "type": "string" }
  }
}

この例では nameemail は必須、phone はオプショナルです。

ユースケース

ユーザー登録フォーム、API リクエストボディ、設定ファイルなどで必須フィールドを強制する際に使用します。

試してみる — JSON Schema Validator

フルツールを開く