JSON 差分ツール — 2 つの JSON を比較
2 つの JSON 文書をテキストではなく構造で比較します。キーを並べ替えても書式を変えても差分は出ません。左右に並べて、折りたためるツリーで、あるいはパスのフラットな一覧として読めます。
左
右
差分
このツールについて
行単位の差分は JSON には向かない道具です。ファイルを整形し直したりキーを並べ替えたりすると、データは何も動いていないのに全行が赤くなります。このページは両方の文書を解析してパス単位で比較するため、報告されるのは本当の違いだけです。値が変わった、キーが増えた、キーが消えた。配列の要素は添字ではなく内容で対応付けられるので、長い一覧から 1 件消しても、以降がすべて連鎖して変わったようには見えず、1 件の削除として現れます。
使い方
- 12 つの文書を左右のパネルに貼り付けます。
- 2目的に合う表示で結果を読みます(左右、ツリー、リスト)。
- 3「変更点のみ」を有効にして変わっていない部分をたたみ、要約をコピーします。
よくある質問
›キーを並べ替えても差分が出ないのはなぜですか?
ここで比較しているのはテキストではなく構造だからです。JSON のオブジェクトは定義上順序を持たないため、{"a":1,"b":2} と {"b":2,"a":1} は同じデータを保持しており、同一と報告されます。行単位の差分ツールなら両方のファイルを赤く塗るところです。
›配列はどう比較されますか?
要素は位置ではなく内容で対応付けられます。そのため長い一覧から 1 件削除しても「それ以降がすべて変わった」ではなく 1 件の削除として報告されます。削除と挿入が対応する場合は、1 件の変更された要素として表示されます。
›どの表示を使えばいいですか?
見慣れた左右比較なら「左右」、文書が深く変更のない枝をたたみたいなら「ツリー」、変更点をチケットに貼りたいなら「リスト」です。3 つとも同じ比較を別の形で描いたものです。
›「変更点のみ」は何をしますか?
左右表示では、変更のない行が続く区間を目印にまとめます。コードレビューと同じやり方です。ツリー表示では中身のない枝を隠します。リスト表示はもともと変更点だけです。
›YAML や XML のファイルも比較できますか?
先に JSON へ変換してください。YAML → JSON と XML → JSON のページなら貼り付けるだけです。その結果をここで比較します。比較そのものは形式を問いません。
›何かアップロードされますか?
いいえ。両方の文書はブラウザ内で解析・比較されます。だからこそ本番の設定とステージングの設定を安心して比較できます。