コンテンツにスキップ
ToolsMinify logo
開発者ツール

JSON Diff Checker

ブラウザで2つのJSONドキュメントを構造的に比較します - アカウント不要、アップロード不要です。テキストのDiff Checkerとは異なり、このツールは両側を解析し、オブジェクトをキー(順序は関係ありません)で、配列をインデックスで走査します。追加、削除、変更、型変更された値のパスレベルのレポートが得られます。一致するキーの順序が変更されても同一と見…

JSON Diff Checkerについて

ブラウザで2つのJSONドキュメントを構造的に比較します - アカウント不要、アップロード不要です。テキストのDiff Checkerとは異なり、このツールは両側を解析し、オブジェクトをキー(順序は関係ありません)で、配列をインデックスで走査します。追加、削除、変更、型変更された値のパスレベルのレポートが得られます。一致するキーの順序が変更されても同一と見なされます。APIレスポンス、設定フィクスチャ、またはWebhookペイロードをマージする前に差分をチェックするために使用してください。片側がミニファイされている場合はJSON Minifierと、単一のパスを検査する場合はJSONPath Testerと組み合わせて使用してください。

JSON Diff Checkerの使い方

  1. 左側(オリジナル)と右側(更新済み)のJSONを貼り付けるか、サンプルを読み込んで、キーの並べ替えと実際の変更の違いを確認します。
  2. 必要に応じてどちらかの側をフォーマットするか、Swapで左右を入れ替えます。
  3. 追加、削除、変更、型変更、および等しいリーフの数を読み取ります。テーブルには、異なるすべてのパスがリストされます。
  4. テキストレポートまたはJSONレポートをコピーして、CIのメモやPRコメントに使用します。
  5. 何もサーバーに送信されません。無効なJSONの場合、どちらの側が失敗したか、行と列が報告されます。

JSON Diff Checkerの例

キーの並べ替えは同一

{"b":2,"a":1} と {"a":1,"b":2} は変更なしと判断されます。オブジェクトのキーの順序は意図的に無視されます。

追加および変更されたフィールド

左 {"id":1,"name":"Ada"} と右 {"id":1,"name":"Ada Lovelace","email":"ada@example.com"} の比較では、$.name が変更され、$.email が追加されたと報告されます。

ネストされたパスと配列インデックス

配列はインデックスで比較されます。タグリスト ["a","b"] と ["a","c"] の比較では、$.tags[1] が変更されたと報告され、行全体の書き換えとはなりません。

型の変更

{"n":1} と {"n":"1"} は型変更されたパスです。数値が文字列になりました。テキスト差分では引用符のみが表示されます。

扱いにくいキー

プレーンな識別子ではないキーは、例えば $["content-type"] のようにブラケットパスを使用するため、レポートは曖昧になりません。

一般的な使用例

  • バックエンドデプロイ後の2つのAPIレスポンスの差分チェック
  • マージ前の設定または機能フラグJSONの確認
  • 契約テストでのWebhookペイロードフィクスチャのレビュー
  • テキスト差分では見過ごされがちな型のずれ(数値 vs 文字列)の発見
  • キーの並べ替えのみでは意味が変わらないことの確認

JSON Diff Checkerに関するよくある質問

テキストのDiff Checkerとはどう違うのですか?
テキストのDiff Checkerは行と単語を比較します。このツールはJSONを解析し、構造を比較します。オブジェクトのキーは順序に依存せず、配列はインデックスを使用し、各変更にはJSONPathスタイルのパスがあります。散文やコードにはテキストツールを、JSONペイロードにはこれを使用してください。
キーの順序は重要ですか?
オブジェクトの場合はいいえ。{"a":1,"b":2} と {"b":2,"a":1} は同一です。配列はインデックスで比較されるため、配列の順序は重要です。
added、removed、changed、type-changedは何を意味しますか?
Addedはパスが右側にのみ存在することを意味します。Removedは左側にのみ存在することを意味します。Changedは同じ型で異なる値を意味します。Type-changedはJSONの型が異なること(例えば数値 vs 文字列)を意味します。
配列はどのように比較されますか?
先頭からのインデックスで比較されます。アイテムを別のインデックスに移動すると、そのインデックスでの削除と追加のように見えます。あいまいな配列の一致はありません。
私のJSONはアップロードされますか?
いいえ。差分チェックはこのタブ内でのみ実行されます。両方のドキュメントはデバイス上に留まります。
結果をエクスポートできますか?
はい。人間が読めるレポートまたはJSONレポート(パス、型、値)をコピーして、チケットやCIのメモに使用できます。
片側が無効なJSONの場合はどうなりますか?
このツールは、失敗した側と、可能であれば行と列を特定するため、比較する前にカンマ、引用符、またはブラケットを修正できます。