必須プロパティ — 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や空文字列であっても、プロパティが存在すれば検証は通過します。requiredはpropertiesと組み合わせて使用するのが一般的です。propertiesに定義されていないプロパティ名をrequiredに含めることも可能です。
{
"type": "object",
"required": ["name", "email"],
"properties": {
"name": { "type": "string" },
"email": { "type": "string", "format": "email" },
"phone": { "type": "string" }
}
}
この例では name と email は必須、phone はオプショナルです。
ユースケース
ユーザー登録フォーム、API リクエストボディ、設定ファイルなどで必須フィールドを強制する際に使用します。