ツール
JA

JSON 比較・差分チェック

2 つの JSON を貼り付けると、すべての差分を検出します。キーの順序や書式を無視してデータの意味で比較し、変更点ごとに JSON パスを表示します。左右に並べた表示では、変更された行がハイライトされます。

元の JSON

変更後の JSON

プライバシー保護:データはお使いのブラウザ内で処理され、アップロードされることはありません。

JSON を比較する方法

  1. 左側に元の JSON、右側に変更後の JSON を貼り付けるか、それぞれにファイルをドロップします。
  2. 概要と差分の一覧を確認します。追加・削除・変更された値は、$.users[2].email のようなパス付きで表示されます。
  3. 下にスクロールすると、左右に並べた表示で変更箇所を前後の文脈とともに確認できます。リスト項目の順序が関係ない場合は、配列の順序を無視にチェックを入れます。

テキスト比較ではなく意味で比べる JSON 差分

通常のテキスト差分は、キーの位置が変わったり、インデントが違ったり、数値の書き方が異なったりするだけで変更として報告します。この JSON diff はデータそのものを比較します。

比較結果の見方

ラベル意味パスが指す位置
追加変更後の JSON にのみ存在する値変更後の JSON での位置
削除元の JSON にのみ存在する値元の JSON での位置
変更両方にキーがあるが、値または型が異なる変更後の JSON での位置

左右に並べた表示では、対応する行が向かい合うように、両方のドキュメントをキーでソートして整形します。変更のない長い部分は折りたたまれます(変更のない行を非表示のチェックを外すと展開されます)。

よくある質問

キーの順序は比較に影響しますか?

いいえ。JSON のオブジェクトは仕様上順序を持たないため、比較ではキーの順序を無視します。配列は順序どおりに比較されますが、「配列の順序を無視」にチェックを入れると順序を無視できます。

大きな JSON ファイルも比較できますか?

はい。比較はブラウザ内で実行され、最初の 200 件の差分を一覧表示します(ボタンですべて表示できます)。左右に並べた表示では最大 5,000 行まで表示されます。

コードで JSON を比較するには?

Python では json.loads(a) == json.loads(b) で等しいかどうかを判定できます。JavaScript には深い比較を行う組み込み機能がないため、Lodash などのライブラリの _.isEqual(a, b) を使います。コマンドラインでは diff <(jq -S . a.json) <(jq -S . b.json) で異なる行を表示できます。

データはアップロードされますか?

いいえ。2 つのドキュメントはブラウザ内でローカルに比較され、お使いのデバイスの外に送信されることはありません。