JSON差分比較

2つのJSONの構造を比較し、必要な変更だけを確認できます。

入力したテキストやファイルの処理はブラウザ内で行われ、元の入力や結果をサーバーに送信しません。訪問統計や広告の通信はプライバシーポリシーをご確認ください。

使い方

  1. 左右にJSONを貼り付けるか、各枠にローカルファイルをドロップします。左側が変更前です。
  2. 比較オプションで無視するパスや、配列オブジェクトをidなどのキーで照合する設定を選びます。
  3. 追加・削除・変更のパスを確認し、CSV、JSON Patch、キーを整列したJSONを必要に応じて保存します。

使用例

更新時刻を無視して価格差分だけ確認

$.meta.updatedAtを無視すると、時刻の変更を隠しつつ$.priceの10から12への変更は残ります。

詳細

JSONの行文字列ではなく、パースした値と構造を比較します。文字列の外側の空白は差分にならず、初期設定ではオブジェクトのキー順序も無視します。配列は位置で比較しますが、一意のidなどを指定すれば順番変更を大量の変更と誤認するのを防げます。数値の1、1.0、1e0を同じと見なす設定もあります。

無視ルールは$から始まる明示的なパスを使い、一致したノードとその子を表示比較から除外します。完全なJSONPath式、再帰検索、フィルター式は対応しません。キー照合は配列の各要素がオブジェクトで、文字列または数値の一意キーを持つ場合だけ使えます。

出力のJSON PatchはRFC 6902のadd・remove・replaceとRFC 6901のポインターエスケープを使います。表示上無視した差分も含め、左の原文を右の原文に変換できる完全なパッチです。入力は一側5 MiBまでで、破棄可能なバックグラウンドワーカー内で処理し、アップロードや自動保存はしません。

よくある質問

差分が0でもパッチに変更があるのはなぜ?

比較オプションは表示を隠せますが、パッチは左の原文全体を右の原文に変換するためです。

完全なJSONPathを使えますか?

いいえ。$、.name、[0]、[*]だけに対応します。

ファイルは送信されますか?

いいえ。読み取りと比較はブラウザのメモリ内だけで行われます。