JSON Diff オンライン比較

ローカル処理
app.diff.view

次の方法でも #data={"name":"Ada"} または #url=... データを流し込めます。読み取り後はアドレスバーから削除されます。

使い方

左右に2つの JSON を貼り、構造に沿ってフィールドが追加・削除・値変更かを比較します。プレーンテキスト Diff より、API 更新や設定変更のような「構造は同じだが値が違う」場面に向いています。公開前に v1 / v2 のサンプルレスポンスを貼ると、Git で圧縮1行を diff するより入れ子フィールドを見逃しにくいです。

意味の比較

ある行の空白が揃っているかではなく、パス上の差に注目します。インデントやキー順が違っても、構造比較はテキスト Diff よりノイズが少ないことが多いです。

結果には追加、変更、削除が示され、特定の種類だけに絞れます。

変更レビュー向け

どの Key が変わったかを見てからクライアント修正の要否を判断できます。数値が文字列になった、フィールドが消えた、といった差は 500 行を目で追うより確実です。

テスト担当も baseline と現在のレスポンスで回帰の抜き取り確認ができます。

比較前に並べ替え可能

Key 順が安定しないときは、先に並べ替えツールを使ってから貼ってください。配列が単なる集合で順序に意味がない場合、順序差は偽陽性になり得るので業務判断が必要です。

このページはデータをアップロードしませんが、機密フィールドはマスキングしてから比較することを推奨します。

左側 A
{
  "name": "Alice",
  "age": 30,
  "tags": ["dev", "json"]
}
右側 B(A からの変化)
{
  "name": "Alice",
  "age": 31,
  "tags": ["dev", "tools"],
  "active": true
}
配列の順序は差分になりますか?

位置で比較します。2つのリストの要素順が違うだけでも表示されます。

とても大きなファイルは?

比較はこのパソコン上で行われます。大きいときは JSONPath で関連断片を抜いてから比較してください。

完全一致のときは何が表示されますか?

2つの JSON が完全に同じである旨が表示され、ハイライトされる差分はありません。

null とフィールド欠如は同じですか?

違います。一方が null で、もう一方にそのキーがない場合は別々にマークされ、意味も異なります。

おすすめの手順

  1. 旧版(A)と新版(B)のサンプルを用意し、必要なら先にそれぞれフォーマットします。
  2. 「比較を実行」を押し、追加 / 変更 / 削除で絞り込みます。
  3. CHANGELOG やテストアサーションに書くパスを控えます。
  4. キー順だけが違う場合は、先に並べ替えページで両側を処理してからもう一度比較します。

Diff は「2つのデータの差」、Schema は「取り決めに合うか」です。API 更新では両方を行うことを推奨します。