本文へスキップ
にゃんこツール

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は、ブラウザ内でそのまま比較できます。ネストが極端に深い場合は、処理できない旨のエラーを表示します。

このページをシェア

↑↓ 選択 Enter 開く Esc 閉じる