JSON差分比較
2つのJSONを、テキストではなく構造で比較します。
- ブラウザ上で動作します — テキストはどこにも送信されません
- 登録不要、利用回数の上限なし、何度でも無料で使えます
仕組み
2つのJSONペイロードを通常のテキスト差分で比較するとノイズだらけになります。キーの順序の違い、インデントの違い、末尾のカンマが、実際には何も変わっていないのに変更として表示されます。代わりに解析後の構造を比較すれば、本当に違う部分だけが分かります。
文字ではなく意味を比較します
両方のドキュメントを解析し、値ごとに比較します。オブジェクトには本来の順序がないので、キーの順序と空白は関係ありません。同じ内容を表す2つのドキュメントは、書き方がどれほど違っても同一と報告されます。
出力の読み方
+で始まる行は2つ目のドキュメントにだけ存在し、−は1つ目にだけ存在し、~は両者で値が異なり、両方の値が表示されます。パスで場所が分かります。オブジェクトのキーはドット、配列の位置は角括弧で示すので、response.items[2].priceのようにフィールドを正確に指します。
配列は位置で比較されます
3番目の要素は3番目の要素と比較されます。順序のあるデータには正しい動作ですが、順序のない集合には適しません。同じ項目で順序だけが入れ替わったリストは、多数の変更として表示されます。データの順序に意味がない場合は、先に両方を並べ替えてください。
ローカルで動作する理由
APIのペイロードには、トークン、顧客の記録、内部の識別子がよく含まれます。それを2つとも外部の比較サービスに貼り付けると、すべてを渡してしまいます。ここでは、両方のドキュメントがページ内で解析・比較されます。
JSON差分比較に関するよくある質問
キーの順序は影響しますか?
いいえ。オブジェクトには本来の順序がないため、キーの順序が入れ替わっていても差分としては報告されません。
配列はどのように比較されますか?
位置で比較します。順序が入れ替わったリストは多数の変更として表示されるので、順序に意味がない場合は先に両方を並べ替えてください。
記号は何を意味しますか?
+は2つ目のドキュメントにだけ存在し、−は1つ目にだけ存在し、~は両者で異なることを表します。
データはアップロードされますか?
いいえ。両方のドキュメントはブラウザ上で解析・比較されます。