JSONスキーマバリデーター & フォーマッター
ガイド
JSONスキーマバリデーター & フォーマッター
正確で詳細なエラーレポートにより、JSONスキーマに対してJSONデータを検証します。データとスキーマを貼り付け、ドラフトバージョンを選択すると、すべてのアノテーションエラーの正確なJSONポインターパスを含む即時のフィードバックが得られます。すべての処理はクライアント側で実行されるため、データがブラウザから離れることはありません。
使い方
最初のテキストエリアにJSONデータを貼り付け、2番目のテキストエリアにJSONスキーマを貼り付けます。スキーマドラフトバージョン(draft-07、2019-09、または2020-12)を選択して検証をクリックします。ツールは、各問題の正確なパス、違反したキーワード、および説明を示す詳細なエラーメッセージとともに、明確な合格または不合格の結果を表示します。フォーマットボタンを使用して、いずれかの入力を整形します。
特徴
- 複数のスキーマドラフト – ajv検証ライブラリを介してJSONスキーマdraft-07、draft-2019-09、およびdraft-2020-12をサポートします。
- 詳細なエラーレポート – 各検証エラーは、不適切な値へのJSONポインターパス、違反したキーワード、および人間が読めるエラーメッセージを示します。
- JSONフォーマッタ – JSONデータとスキーマの両方をフォーマットして pretty-print し、読みやすく編集しやすくします。
- クライアント側処理 – すべての検証は、業界標準のajvライブラリを使用してブラウザで実行されます。データはサーバーに送信されません。
- サンプルデータ – 内蔵のサンプルを使用して、自身のデータを貼り付ける前に検証がどのように機能するかを確認します。
このツールを使用するタイミング
APIがリクエスト検証にJSONスキーマを使用している場合や、設定ファイルをスキーマに対してテストする場合、またはサンプルデータが仕様に準拠していることを確認する場合に、このツールを使用してください。特に、目では見逃しがちですが実行時にアプリケーションを破損させる可能性のある、必須フィールドの欠落、型の不一致、パターンの違反などの微妙な問題を検出するのに役立ちます。
よくある質問
-
JSONスキーマとは何ですか、そして何に使用されますか?
JSONスキーマは、JSONドキュメントに注釈を付け、検証するための語彙です。JSONデータの期待される構造、型、および制約を定義します。どのフィールドが必須か、どのような型であるべきか、文字列がどのようなパターンに一致する必要があるかなどです。APIリクエスト/レスポンスの検証、設定ファイルの検証、データ交換仕様に広く使用されています。
-
JSONスキーマのdraft-07、2019-09、および2020-12の違いは何ですか?
各ドラフトは、新しいキーワードを追加したり、既存の動作を改良したりします。Draft-07は最も広くサポートされており、if/then/elseのようなキーワードが含まれています。Draft-2019-09は、ボキャブラリー、unevaluatedProperties、dependentRequiredを追加しました。Draft-2020-12は、動的参照とprefixItems(itemsの配列形式に代わるもの)を改良しました。ほとんどのツールはdraft-07をサポートしていますが、新しいドラフトはより表現力がありますが、ツールのサポートはわずかにユニバーサルではありません。
-
検証エラーのJSONポインターパスとは何ですか?
JSONポインターは、JSONドキュメント内の特定の値を識別するための文字列構文です(RFC 6901で定義)。スラッシュを使用してオブジェクトや配列にナビゲートします。たとえば、/users/0/emailは、users配列の最初のユーザーのemailフィールドを指します。検証エラーにはこれらのパスが含まれているため、データ内の問題がどこで発生しているかを正確に特定できます。
-
ajvとは何ですか、そしてなぜJSONスキーマ検証の標準なのですか?
Ajv(Another JSON Validator)は、JavaScriptで最も広く使用されているJSONスキーマバリデーターです。すべての主要なドラフトをサポートし、スキーマを最適化された検証関数にコンパイルして速度を向上させ、詳細なエラーレポートを提供します。webpack、ESLint、OpenAPIツールチェーンなどの主要なプロジェクトで使用されており、毎日数十億件の検証を処理しています。
恵 スコアボードが到着しました!
スコアボード ゲームを追跡する楽しい方法です。すべてのデータはブラウザに保存されます。さらに多くの機能がまもなく登場します!
