新着記事を見逃さないには?
このブログ一覧をブックマークし、ホームやツール一覧のガイド欄もご覧ください。記事の閲覧に登録やメール購読は不要です。
必須項目、ネストしたオブジェクト、配列、enum、再利用可能な定義、条件付き検証を、コピーして試せる JSON Schema 例で解説します。
JSON Schema は JSON データの構造と制約を記述します。API 契約、設定ファイル、インポート処理のルールを機械的に検証できる形にするために使えます。
{
"$schema": "https://json-schema.org/draft/2020-12/schema",
"type": "object",
"required": ["id", "status"],
"properties": {
"id": { "type": "string", "minLength": 1 },
"status": { "enum": ["pending", "active", "disabled"] }
},
"additionalProperties": false
}additionalProperties: false は誤字や予期しないキーの検出に便利です。ただし、将来フィールドが増える公開 API では互換性を考えて使用してください。
{
"type": "object",
"required": ["name", "address"],
"properties": {
"name": { "type": "string" },
"address": {
"type": "object",
"required": ["country", "postalCode"],
"properties": {
"country": { "type": "string", "minLength": 2 },
"postalCode": { "type": "string", "pattern": "^[A-Za-z0-9 -]+$" }
},
"additionalProperties": false
}
}
}正規表現は文字列の形だけを確認します。住所が実在するか、在庫があるかといった事実はアプリケーション側で検証します。
{
"type": "array",
"minItems": 1,
"uniqueItems": true,
"items": {
"type": "object",
"required": ["sku", "quantity"],
"properties": {
"sku": { "type": "string", "minLength": 1 },
"quantity": { "type": "integer", "minimum": 1 }
}
}
}uniqueItems は JSON 値全体を比較します。特定フィールドだけの一意性は、通常アプリケーションやデータベースで保証します。
$defs で定義を再利用する{
"$defs": {
"money": {
"type": "object",
"required": ["amount", "currency"],
"properties": {
"amount": { "type": "number", "minimum": 0 },
"currency": { "type": "string", "pattern": "^[A-Z]{3}$" }
}
}
},
"type": "object",
"properties": {
"subtotal": { "$ref": "#/$defs/money" },
"total": { "$ref": "#/$defs/money" }
}
}金額を正確に扱う必要がある場合は、10進文字列または最小通貨単位の整数を検討してください。
{
"type": "object",
"required": ["deliveryMethod"],
"properties": {
"deliveryMethod": { "enum": ["pickup", "shipping"] },
"shippingAddress": { "type": "string" },
"pickupLocationId": { "type": "string" }
},
"allOf": [
{
"if": { "properties": { "deliveryMethod": { "const": "shipping" } } },
"then": { "required": ["shippingAddress"] },
"else": { "required": ["pickupLocationId"] }
}
]
}Schema は読みやすく保ちましょう。権限やワークフロー全体はアプリケーションコードの責務です。
キーワードと draft の動作は JSON Schema 公式ガイドで確認できます。生成結果は出発点であり、最終的なルールは業務要件を表す必要があります。
開発者に最高のJSON処理ツールを提供することに専念
さらに多くの投稿が近日公開予定...
ブログに戻る更新の追い方、扱うトピック、リクエストについて。
このブログ一覧をブックマークし、ホームやツール一覧のガイド欄もご覧ください。記事の閲覧に登録やメール購読は不要です。
JSON の検証・整形・変換・デバッグの流れと JSON Work の更新で、サイト上の無料ツールがブラウザ内でできることと対応づけています。
はい。About の連絡先や GitHub からどうぞ。実務の統合やデバッグに直結するテーマを優先しています。