本文へスキップ
ToolMug

JSON 比較(差分チェック)

JSON の設定ファイル、API レスポンス、データファイルの 2 つのバージョンで何が変わったかを正確に確認できます。差分は $.users[2].email のようなパスで表示されるため、キーの並び替えや整形の違いは変更として扱われません。

ブラウザ内で動作 — 入力した内容はアップロードされません

比較するには、両側に JSON を貼り付けてください。

使い方

  1. 左に元の JSON、右に変更後の JSON を貼り付けます。
  2. 配列の順序を考慮するかどうかを選びます。
  3. 追加(+)、削除(−)、変更(~)された値の一覧を確認するか、レポートとしてコピーします。

オプションの説明

位置で比較
配列の要素を 1 つずつ順に比較します。そのため、先頭に要素を挿入すると、それ以降のすべての位置が変更として扱われます。
順序を無視
配列を順序のない集合として扱い、片方にだけ存在する要素のみを報告します。ID やタグ、レコードのリストに便利です。
パス
パスは JSONPath 記法で表します。$ はルート、.key はプロパティ、[0] は配列の要素、["a b"] は通常の名前ではないキーを表します。

例

キーの順序が異なり、一部の値が違う、次の 2 つのドキュメントを例にします。

{"name": "Ada", "age": 36, "tags": ["x", "y"], "address": {"city": "Rome"}, "first name": "A"}
{"age": 37, "name": "Ada", "tags": ["y", "x"], "address": {"city": "Rome", "zip": "00100"}, "first name": "B", "role": "admin"}

位置で比較した結果は次のとおりです。

変更 パス 変更前 変更後
~ $.age 36 37
~ $.tags[0] “x” “y”
~ $.tags[1] “y” “x”
+ $.address.zip “00100”
~ $["first name"] “A” “B”
+ $.role “admin”

「順序を無視」をオンにすると、2 つの配列は同じ 2 つの値を持つため、tags の 2 件の変更はなくなります。キーの順序は、どちらのモードでも影響しません。数値が文字列になる、オブジェクトが配列になるなど、型が変わった値は、そのパスの 1 件の変更として報告されます。

よくある質問

テキストの差分と何が違いますか?

テキストの差分は行単位で比較するため、書式やキーの順序の違いも変更として表示されます。JSON 比較は両方を解析し、データそのものを比較します。

1 と "1" は同じものとして扱われますか?

いいえ。数値と文字列は異なる JSON の値なので、両方の値とともに変更として報告されます。

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

いいえ。2 つのドキュメントはブラウザ内で比較されます。

プライバシー

このツールはすべてブラウザ内で動作します。ファイルやテキストはお使いの端末上で処理され、当サイトのサーバーにアップロードされることはありません。

関連ツール