仕様と根拠
何を比べるか
両方の JSON を読み、オブジェクトの項目を「$.user.name」のようなパスにして、パスごとに値の型を集めます。型は RFC 8259 3 節の値の種類(オブジェクト・配列・文字列・数値・真偽値・null)です。true と false は同じ「真偽値」として扱います。旧版にあって新版にないパスが「欠損」、型の集合が違うパスが「型変更」、新版だけにあるパスが「追加」です。
配列の扱い
既定では配列の全要素を 1 つにまとめ、パスの途中を [] と書きます。一部の要素にしか無い項目も「ある」と数えます。「要素ごとに比べる」を選ぶと [0]・[1] と番号を付け、要素の数や位置の違いも差になります。親のパスが欠損や型変更のときは、その下のパスは重ねて報告しません。
構文エラーのとき
RFC 8259 の文法に沿って読み、壊れていると比べられません。旧版・新版のどちらのエラーかと、何行目の何列目かを示します。
根拠にした仕様・資料
| 仕様・資料 | 確認日 | 使った箇所 |
|---|---|---|
| RFC 8259 The JavaScript Object Notation (JSON) Data Interchange Format | 2026年10月28日 | 3 節(値の種類)・4 節(オブジェクトの名前と値)・7 節(文字列) |
指摘の段階
- エラー: 仕様に反していて、正しく読めない・処理できない入力です。
- 警告: 読めるものの、仕様の推奨に反する・矛盾する・意図と違う結果になりやすい入力です。
- 情報: 誤りではありませんが、知っておくとよい扱い(読み飛ばした部分や解釈)です。
入力の扱い(送信しない仕組み)
処理はすべてお使いのブラウザの中で行います。処理の本体はこのサイトから配信する小さなスクリプト(/app.js)で、外部のサービスやライブラリを読み込みません。ページはブラウザに通信を禁止させる設定(Content-Security-Policy の connect-src)つきで配信しており、入力した内容がサーバーや第三者へ送られることはありません。ファイルを選んだ場合も、端末の中で読み込むだけです。
このツールでできないこと(制約)
- 値そのものの違い(金額や文字列の変更)は比べません。構造(項目の有無と型)だけを見ます。値の差分は別の JSON 差分ツールを使ってください。
- 配列をまとめて比べるときは、一部の要素にしか無い項目も「ある」と数えるため、要素ごとの欠損は見つかりません。
- 数値の整数と小数(1 と 1.5)は同じ「数値」です。文字列の中身が日付かどうかなどの意味の違いは見ません。
- JSON Schema や OpenAPI 定義そのものの比較はしません。実際の応答例を貼って比べます。
ご利用にあたって
- 比べるのは貼り付けた応答例の構造だけです。実際の API の仕様や互換性の保証ではありません。
- 大きな JSON はお使いの端末の性能によって処理に時間がかかることがあります。