✅ JSONスキーマ検証
✓ データはスキーマに適合しています
JSON Schema(スキーマ定義)とJSONデータの両方を入力するだけで、データがスキーマの定義に適合しているかを検証するツールです。type・required・properties・enum・minimum/maximum・pattern などJSON Schemaの主要なキーワードに対応しています。
使い方
- 左側にJSON Schema(検証ルール)を入力します。
- 右側に検証したいJSONデータを入力します。
- 適合していない箇所があれば、エラー内容が自動的に一覧表示されます。
計算の仕組み
JSON Schemaは、JSONデータの形(型、必須の項目、値の範囲など)を、同じくJSONで定義するための仕様です。このツールは、入力したスキーマにデータが合っているかを確かめ、合わない箇所を一覧にします。 対応している主なキーワード ・type(string、number、integer、boolean、object、array、null) ・enum、const ・数値: minimum、maximum、exclusiveMinimum、exclusiveMaximum、multipleOf ・文字列: minLength、maxLength、pattern ・配列: items、minItems、maxItems、uniqueItems ・オブジェクト: properties、required、additionalProperties: false、minProperties、maxProperties 入れ子のproperties・itemsもたどって調べ、エラーの場所を「address.city」「tags[2]」のようなパスで示します。文字列の長さは、JSON Schemaの仕様どおり、見た目の文字数(コードポイントの数)で数えます。
計算例
スキーマ {"type": "object", "required": ["name", "age"], "properties": {"name": {"type": "string", "minLength": 1}, "age": {"type": "integer", "minimum": 0}}} データ {"name": "", "age": 3.5} の結果 name: length must be >= 1 age: expected type "integer", got "number" データ {"name": "Alice", "age": 30} なら、エラーはありません。
使用上の注意
- $ref(ほかのスキーマの参照)、allOf・anyOf・oneOf、if/then/else、format(email、dateなど)には対応していません。本格的な検証には、Ajvなどのライブラリを使ってください。
- integer は、小数点以下が0の数値(例: 1.0)も整数として扱います。
- patternは、文字列の一部に一致すればよい(全体一致ではない)ため、全体を検証したい場合は ^ と $ で囲んでください。
よくある質問
JSON Schemaのすべての機能に対応していますか?
いいえ、このツールはtype・required・properties・additionalProperties・enum・const・minimum/maximum・exclusiveMinimum/exclusiveMaximum・multipleOf・minLength/maxLength・pattern・items・minItems/maxItems・uniqueItems・minProperties/maxPropertiesといった主要なキーワードのサブセットに対応しています。allOf・oneOf・anyOf・$ref などの高度な合成機能には対応していません。
エラーが表示されないのに検証結果がおかしい場合は?
対応していないキーワードを使用している可能性があります。上記のFAQにある対応キーワード一覧をご確認ください。
JSON Schemaとは何ですか?
JSONデータの構造やルールを定義するための仕様です。API のリクエスト/レスポンスの形式チェックや、設定ファイルのバリデーションなどに広く使われています。