JSON差分比較
2つのJSONを貼り付けると、どのキーが追加・削除・変更されたかを $.user.name のようなパスつきで一覧表示します。テキスト比較と違い、キーの並び順や整形(インデント)の違いは差分になりません。API仕様の変更確認や、設定ファイルの比較に便利です。行単位で比べたい場合は テキスト差分 をご利用ください。
🔒 ブラウザ内で完結・入力データはサーバーに送信されません
差分
注意事項
- オブジェクトはキーの順序を無視して比較します。配列は、既定では同じ位置(添字)の要素どうしを比べます。
- 「配列の並び順を無視する」をオンにすると、同じ値の要素を対応づけて比較します。対応づけられなかった要素は、要素の一部だけが違う場合でも、削除・追加として表示されます。
- 数値は JavaScript の数値として比較します。1 と 1.0 は同じ値、1 と "1"(文字列)は別の値です。
- 比較は貼り付けた2つのJSONだけを対象に、すべてブラウザ内で行います。トークンなどの機密情報を含むJSONも外部には送信されません。
用語解説
パス
差分のある値の位置を表す記法です。$ がルート、.name がキー、[0] が配列の添字を表します。
構造的な比較
文字列として比べるのではなく、JSONの構造(オブジェクト・配列・値)として比べる方法です。キーの順序や空白、改行の違いは差分になりません。
配列の添字
配列の要素の位置を表す番号です。先頭が0で、[0] は1番目の要素を指します。
よくある質問
キーの順序が違うだけのJSONは差分になりますか?
なりません。オブジェクトのキーの順序は無視して、同じキーの値どうしを比べます。インデントや改行などの整形の違いも差分になりません。
配列の要素の順番が違う場合はどうなりますか?
既定では同じ位置の要素どうしを比べるため、並びが違えば変更として表示されます。「配列の並び順を無視する」をオンにすると、同じ値の要素を対応づけて比較し、並べ替えだけなら差分になりません。
差分のパスの見方を教えてください。
$ がJSON全体のルートです。$.user.name はuserオブジェクトのnameキー、$.items[2] はitems配列の3番目の要素を表します。ハイフンなど識別子にできないキーは $["first-name"] のように表示します。
大きなJSONや深くネストしたJSONも比較できますか?
数MB程度までのJSONは、ブラウザ内でそのまま比較できます。ネストが極端に深い場合は、処理できない旨のエラーを表示します。
このページをシェア
