JSONスキーマバリデーター
スキーマとドキュメントを貼り付けてドラフトを選択すると、バリデーターがスキーマで使用しているすべてのキーワード(type、required、enum、oneOf、$ref、if/then/else、カスタムのformat)に照らしてドキュメントを検証し、違反ごとに問題箇所を正確に指し示すJSONPath形式のポインタとともに報告します。
スキーマに対して検証する方法
-
1
スキーマを貼り付ける
JSONスキーマのドラフト04、07または2020-12。`$schema`キーワード(存在する場合)が該当するドラフトを自動的に選択します。
-
2
ドキュメントを貼り付ける
検証したいJSONです。まず有効なJSONである必要があり、構文エラーはスキーマ評価の前に表示されます。
-
3
検証する
各違反は、JSONポインタ(`/user/email`)と失敗したキーワード(`format`、`required`など)とともに報告されます。
-
4
修正して再検証する
どちらかを編集すると、ステータスがリアルタイムで更新されます。
サポートされているキーワード
コア: type、enum、const、multipleOf、maximum、minimum、exclusiveMaximum、exclusiveMinimum、maxLength、minLength、pattern、maxItems、minItems、uniqueItems、maxContains、minContains、maxProperties、minProperties、required、dependentRequired。
組み合わせ: allOf、anyOf、oneOf、not。
適用キーワード: properties、patternProperties、additionalProperties、items、prefixItems、contains、propertyNames。
条件分岐: if、then、else、dependentSchemas。
参照: $ref、$defs、$id、$anchor。
フォーマット(有効にすると検証を実施): date-time、date、time、duration、email、hostname、ipv4、ipv6、uri、uuid、regex。
エラー出力
FAIL /user/email format "not-an-email" is not a valid "email"
FAIL /user/age minimum -3 is less than the minimum 0
FAIL /orders/0/total type "42" is not of type "number"
FAIL / required missing required property "shippingAddress"
すべてのエラーには失敗したパスとキーワードが含まれるため、エディタ内ですばやく特定できます。
落とし穴になりやすいドラフト間の違い
| キーワード | ドラフト04 | ドラフト07 | ドラフト2020-12 |
|---|---|---|---|
id と $id |
id |
$id |
$id |
exclusiveMaximum をブール値として |
はい | 数値 | 数値 |
items の配列構文 |
items |
items |
prefixItems |
$ref が兄弟キーワードを許可 |
いいえ | いいえ | はい |
正しいドラフトを設定してください。ドラフト04のスキーマを2020-12として検証すると、idやその他の細かな点が誤って解釈されます。
典型的なワークフロー
- API契約テスト: デプロイ前に、生成または更新したOpenAPIスキーマを実際のサンプルレスポンスに照らして実行します。
- 設定の堅牢化: マージ前に、CIですべてのYAML/JSON設定をスキーマに照らして検証します。
- データ取り込み: 期待する形に合致しないペイロードを、明確なエラーメッセージとともに早い段階で拒否します。
よくある間違い
formatの適用を忘れる。 デフォルトでは、ほとんどのバリデーターは未知のフォーマットを注釈としてのみ扱います。不正なメールアドレスや日付を実際に拒否するには、厳格なフォーマット検証を有効にしてください。oneOfの使いすぎ。oneOfの2つの分岐が重なると、ドキュメントは失敗します(ちょうど1つだけに一致する必要があります)。anyOfまたはディスクリミネーターのパターンを使用してください。additionalProperties: falseによる厳格すぎるスキーマ。 新しい任意フィールドを追加することが互換性を壊す変更になってしまいます。本当に閉じたオブジェクトが必要な場合を除き、指定しないでください。
よくある質問
はい。ドラフト2020-12、07、04のすべてに対応しています。バリデーターはドキュメントの$schemaキーワードを読み取って適切なものを選択するか、UIのセレクターにフォールバックします。
標準フォーマット(email、date-time、uuid、ipv4など)は、厳格なフォーマット検証が有効な場合に検証されます。スキーマで宣言したカスタムフォーマットは、patternで正規表現を指定しない限り、注釈としてのみ扱われます。
内部参照(#/$defs/foo)は自動的に解決されます。外部のHTTP参照は、セキュリティ上の理由からデフォルトでは取得されません。まず外部参照をインライン化するか、リモートの$ref解決に対応した専用ツールを使用してください。
はい。スキーマもドキュメントもローカルに保持されます。貼り付けた内容がアップロードされることは一切なく、社内APIの契約や機密データにも安全です。
関連ツール
Webpack設定ジェネレーター
素の JavaScript、React、Vue 向けに webpack 5 の webpack.config.js を生成します。TypeScript、Babel、CSS や Sass、画像、HtmlWebpackPlugin、開発サーバー、npm install のコマンドまでそろいます。
OpenAPI 検証ツール
OpenAPI または Swagger のドキュメントを JSON か YAML で貼り付けて、コア構造をチェックします: バージョンフィールド、info オブジェクト、paths を、わかりやすいエラーと警告つきで。
CSSローディングアニメーション生成ツール
純粋なCSSで円形スピナーを作成できます。直径、枠の太さ、アクセントカラー、回転速度を設定し、ライブプレビューを確認して、そのまま使えるCSSをコピー。SVGもJavaScriptも不要です。
CMYK から RGB への変換
標準的な計算式で CMYK の割合をおおよその RGB 値と Hex 値に変換し、画面用にすばやく確認できます。
カラーティントジェネレーター
ベースカラーの明るい色合いを生成します。デザイン システム トークン、背景、ホバー状態を 3 ~ 20 段階でスケールします。
PHPフォーマッター
単純なPHPコードに改行と2または4スペースのインデントを追加します。結果は必ず確認してください。PHPパーサーでもPSR-12準拠ツールでもありません。
このツールは他の言語でも利用できます
- Validador de JSON Schema [ES]
- أداة التحقق من مخطط JSON [AR]
- Validateur de schéma JSON [FR]
- Validador de JSON Schema [PT]
- Trình xác thực JSON Schema [VI]
- Penentu Struktur JSON [ID]
- JSON 스키마 검증기 [KO]
- JSON Schema-validator [SV]
- JSON Schema-validator [NL]
- เครื่องมือตรวจสอบ JSON Schema [TH]
- JSON-Schema-Validator [DE]
- Walidator JSON Schema [PL]
- JSON Schema Validator [EN]
- Validator di JSON Schema [IT]
- Валидатор JSON Schema [RU]
- JSON Şeması Doğrulayıcı [TR]
- JSON 模式验证器 [ZH]