{ }JSONKit.tools

JSON 差分ツール — 2 つの JSON を比較

2 つの JSON 文書をテキストではなく構造で比較します。キーを並べ替えても書式を変えても差分は出ません。左右に並べて、折りたためるツリーで、あるいはパスのフラットな一覧として読めます。

左

右

差分

–

このツールについて

行単位の差分は JSON には向かない道具です。ファイルを整形し直したりキーを並べ替えたりすると、データは何も動いていないのに全行が赤くなります。このページは両方の文書を解析してパス単位で比較するため、報告されるのは本当の違いだけです。値が変わった、キーが増えた、キーが消えた。配列の要素は添字ではなく内容で対応付けられるので、長い一覧から 1 件消しても、以降がすべて連鎖して変わったようには見えず、1 件の削除として現れます。

使い方

  1. 12 つの文書を左右のパネルに貼り付けます。
  2. 2目的に合う表示で結果を読みます(左右、ツリー、リスト)。
  3. 3「変更点のみ」を有効にして変わっていない部分をたたみ、要約をコピーします。

よくある質問

›キーを並べ替えても差分が出ないのはなぜですか?

ここで比較しているのはテキストではなく構造だからです。JSON のオブジェクトは定義上順序を持たないため、{"a":1,"b":2} と {"b":2,"a":1} は同じデータを保持しており、同一と報告されます。行単位の差分ツールなら両方のファイルを赤く塗るところです。

›配列はどう比較されますか?

要素は位置ではなく内容で対応付けられます。そのため長い一覧から 1 件削除しても「それ以降がすべて変わった」ではなく 1 件の削除として報告されます。削除と挿入が対応する場合は、1 件の変更された要素として表示されます。

›どの表示を使えばいいですか?

見慣れた左右比較なら「左右」、文書が深く変更のない枝をたたみたいなら「ツリー」、変更点をチケットに貼りたいなら「リスト」です。3 つとも同じ比較を別の形で描いたものです。

›「変更点のみ」は何をしますか?

左右表示では、変更のない行が続く区間を目印にまとめます。コードレビューと同じやり方です。ツリー表示では中身のない枝を隠します。リスト表示はもともと変更点だけです。

›YAML や XML のファイルも比較できますか?

先に JSON へ変換してください。YAML → JSON と XML → JSON のページなら貼り付けるだけです。その結果をここで比較します。比較そのものは形式を問いません。

›何かアップロードされますか?

いいえ。両方の文書はブラウザ内で解析・比較されます。だからこそ本番の設定とステージングの設定を安心して比較できます。