✅ JSONスキーマ検証

JSON Schema
検証するJSONデータ

✓ データはスキーマに適合しています

JSON Schema(スキーマ定義)とJSONデータの両方を入力するだけで、データがスキーマの定義に適合しているかを検証するツールです。type・required・properties・enum・minimum/maximum・pattern などJSON Schemaの主要なキーワードに対応しています。

使い方

  1. 左側にJSON Schema(検証ルール)を入力します。
  2. 右側に検証したいJSONデータを入力します。
  3. 適合していない箇所があれば、エラー内容が自動的に一覧表示されます。

計算の仕組み

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 のリクエスト/レスポンスの形式チェックや、設定ファイルのバリデーションなどに広く使われています。