JSON diff
2つのJSONを比較し、追加・削除・変更を色分けで表示します。JSON整形ツールと合わせてAPIレスポンスの確認に。入力はブラウザ内だけで完結します。
例(クリックで試す)
2つのJSONを貼って「比較する」を押してください。
構造で比較するJSON diff
変更前をJSON A、変更後をJSON Bへ貼り、「比較する」を押します。単なる行比較ではなく、入力をJSONとして解析してプロパティのパスごとに比べます。緑は追加、赤は削除、黄は値または型の変更です。
- 左右にそれぞれ有効なJSONを貼り付けます。
- 「比較する」を押し、追加・削除・変更の件数を確認します。
user.nameやitems[1]のようなパスから変更箇所をたどります。
具体例
Aの{"status":"ok","count":1}と、Bの{"status":"ok","count":2,"extra":true}を比較すると、countは1 → 2の変更、extraは追加として表示されます。数値1と文字列"1"も型が異なるため変更です。
順序・配列・数値の注意
オブジェクトはキー名で比較するので、{"a":1,"b":2}と{"b":2,"a":1}に差分はありません。一方、配列は並び自体に意味があるものとしてインデックス順に比較します。配列の先頭へ1件を挿入すると、後続の各位置も変更に見えることがあります。
JSONの数値はブラウザのJavaScript数値として解析します。16桁以上の整数は丸められる可能性があるため警告を表示します。注文番号やデータベースIDのように桁を完全保持したい値は、"9007199254740993"のような文字列として比較してください。これはRFC準拠検査やJSON Patch生成を行うツールではありません。
構文エラーの位置確認や読みやすい整形にはJSON整形・検証、YAMLとの相互変換にはYAML ⇄ JSON変換が利用できます。
よくある質問
JSONの順序の違いは差分になりますか?
オブジェクトのキー順序は無視します。配列はインデックス順に比較するため、先頭への挿入は後続要素も変更として見えることがあります。
巨大な整数も正確に比較できますか?
16桁以上の整数はJavaScriptの数値精度を超える場合があります。入力に該当する整数があると警告します。IDなど完全一致が必要な値はJSON文字列として引用して比較してください。
空欄とJSONのnullは同じですか?
いいえ。空欄は比較対象なし、nullは有効なJSON値として区別します。
入力したJSONはサーバーに送信されますか?
いいえ。比較はすべてブラウザ内で完結します。