JSON構造比較

APIレスポンスや設定ファイルなど2つのJSONを、構造に基づいて比較するツールです。オブジェクトのキーの順序や空白・インデントの違いは無視し、追加・削除・値の変更を対象のパスと変更前後の値つきで表示します。すべてブラウザ内で処理されます。

入力したJSONはサーバーへ送信されず、比較はすべてブラウザ内で行われます。
差分

左右にJSONを入力すると、構造の差分がここに表示されます。

使い方

  1. 左に変更前、右に変更後のJSONを貼り付けるか、ファイルを読み込みます。
  2. 差分が自動で計算され、「追加」「削除」「変更」がパスと変更前後の値つきで表示されます。
  3. JSONに構文エラーがある場合は、左右どちらの何行目に問題があるかが表示されます。
  4. 「コピー」で差分の一覧をタブ区切りのテキストとしてコピーできます。

このツールについて

通常のテキスト差分では、キーの並び順や整形が違うだけでも大量の差分が出てしまいます。JSON構造比較ツールは、JSONを解析したうえで値同士を比較するため、意味のある変更だけを確認できます。

オブジェクトはキーで、配列はインデックス順で比較します。存在しないキーと null、数値の 1 と文字列の "1" は別の値として扱います。パスは $.user.name のような形式で、キーにドットや記号が含まれる場合は $["a.b"] のように表記するため、対象を正確に特定できます。

配列内のオブジェクトをIDで突き合わせたり、並べ替えを検出したりする機能は現在ありません。入力したJSONがサーバーへ送信されることはありません。

変更前を {"count":1,"active":true}、変更後を {"active":true,"count":"1"} にすると、$.countの数値1から文字列「1」への変更だけが表示されます。activeの位置が変わったことは差分にならず、型の変化に絞って確認できます。

空のオブジェクトとキーがない状態も区別します。APIの返却値を比べる場合は、毎回変わる時刻や識別子も通常の差分になるため、まず業務上重要なパスを確認すると判断しやすくなります。差分表示から入力の値が書き換えられることはありません。

よくある質問

キーの順序が違うだけのJSONはどうなりますか?

差分なしと表示されます。空白やインデント、改行の違いも無視されます。

配列の要素の順番が変わった場合は?

配列はインデックス順に比較するため、並べ替えは各インデックスでの値の変更として表示されます。IDによる突き合わせは今後の検討事項です。

JSONがサーバーに送信されることはありますか?

ありません。解析と比較はすべてブラウザ内で行われます。