JSON Schema検証
JSON Schema Validator
文書をJSON Schemaで検証し、通らなかった箇所をインスタンスのパスとともに挙げます。
JSONの文書をJSON Schemaのdraft 2020-12で検証します。すべてブラウザの中で動きます。公式のJSON-Schema-Test-Suiteの必須テスト1,299件をすべて通っていて、失敗はインスタンスの位置と、それを出したキーワードとともに報告します。
スキーマ(draft 2020-12)
検証するデータ
結果
判定
妥当でない
失敗の件数
3
| インスタンスの位置 | キーワード | 問題 |
|---|---|---|
| /port | maximum | 65535 以下でなければなりません |
| /tags | uniqueItems | 0番と 1番の要素が同じです |
| /debug | false | ここではどんな値も通りません(スキーマが false です) |
$ref はスキーマ自身、貼り付けられた追加文書、同梱の 2020-12 メタスキーマの中だけで解決します。リモート参照は取りに行かずに断るので、結果がネットワークに左右されることはありません。 format は強制せず注釈として報告します。2020-12 の既定の動作です。使い方
スキーマとデータを貼り付けます
どちらの欄も、入力に合わせて検証をやり直します。どちらかの構文エラーは別々に報告するので、どちら側が壊れているのかが分かります。
`$ref`があるなら、参照される文書を足します
追加のスキーマを有効にして貼り付けます。文書1つでも、それぞれに`$id`の付いた配列でも構いません。ネットワークから取りに行かないので、ファイルが複数に分かれたスキーマもここで検証できます。
失敗の表を読みます
行ごとに、インスタンスの経路、失敗したキーワード、何を期待していたのかが出ます。issueに貼り付けるなら、全体をJSONとしてコピーできます。
よくある質問
`"format": "email"`が強制されないのはなぜですか
2020-12では`format`が既定で注釈だからです。検証器は、それを報告するだけで検査しないことが許されていて、ほとんどがまさにそうしています。強制したいなら`pattern`を使うか、format-assertionの語彙を有効にした検証器を使ってください。
リモートの`$ref`が解決できませんでした
リモートの参照は、取りに行かずに拒否します。ネットワークへ出ていく検証器は、結果がDNSと他人の稼働率に左右されますし、どのスキーマを検証しているのかを相手に教えることになります。参照される文書を、追加のスキーマの欄に貼り付けてください。
どのdraftに対応していますか
2020-12です。Draft-07のスキーマもたいていはそのまま通ります。キーワードのほとんどが変わっていないからです。ただし`definitions`は`$defs`ではありませんし、タプルにおける`items`の意味が違いますし、`$recursiveRef`は無くなりました。決めてかかる前に`$schema`の行を確かめてください。
フィールド1つが違うだけなのに、エラーがこんなに多いのはなぜですか
`anyOf`、`oneOf`、`allOf`の中で失敗すると、失敗した枝をすべて報告するからです。仕様が、出力の単位にそう含めるよう定めています。ふつうは最初の行が求めているもので、残りは、ほかの枝もなぜ合わなかったのかを説明しています。
ここから渡せます
YAMLフォーマッター・検証
YAML Formatter & Validator
YAMLのインデントを揃えて検証し、パーサを壊すタブやアンカーの誤りに印を付けます。
JSON⇄YAML変換
JSON ⇄ YAML
キーの順序を保って双方向に変換し、YAML側はブロック記法かフロー記法かを選べます。
JSONからZodスキーマ
JSON to Zod Schema
JSONの実例からZodのスキーマを組み立て、nullable・optional・列挙を推論します。
JSONからJSON Schema
JSON to JSON Schema
1つまたは複数の実例からJSON Schemaを推論し、見つかった形を合わせて1つにします。
次の一手
このツールが出したものをそのまま受け取れる道具です。
JSONフォーマッター・検証
JSON Formatter & Validator
JSONを整形・圧縮して検証し、構文エラーがあれば行と列を正確に指し示します。
JSONからJSON Schema
JSON to JSON Schema
1つまたは複数の実例からJSON Schemaを推論し、見つかった形を合わせて1つにします。
OpenAPIの点検
OpenAPI Linter
OpenAPI文書の抜けたレスポンス・使われていないスキーマ・どこも指していない参照など、コード生成器を壊す不備を点検します。
YAMLフォーマッター・検証
YAML Formatter & Validator
YAMLのインデントを揃えて検証し、パーサを壊すタブやアンカーの誤りに印を付けます。
JSON⇄CSV変換
JSON ⇄ CSV
入れ子のJSONをドット記法の列名で平らに開くか、表からオブジェクトを組み直します。
JSON差分比較
JSON Diff
キーの順序を無視して2つのJSONを構造で比べ、追加・削除・変更されたパスを挙げます。