JSON差分チェッカー

2つのJSONを並べて貼ると、どのパス(場所)で何が追加・削除・変更されたかを一覧にします。キーの並び順の違いは差分として扱いません。

パスは $ がいちばん外側、.キー がオブジェクトの中、[番号] が配列の何番目か(0から数える)を表します。記号を含むキーは ["キー"] と書きます。

配列は通常、同じ番号どうしを比べます。途中に1件挿入されると、それ以降がすべて「変更」に見えることがあります。「順不同で比較」をオンにすると、中身が文字列・数値・真偽値・null だけの配列は、並び順を無視して増えた値・減った値を出します(オブジェクトを含む配列は番号どうしで比較します)。

数値は値として比べるので 1 と 1.0 は同じ扱いです。JSONの書式は RFC 8259 に沿って読み、同じキーが2回ある場合は後の値を使います。入力はブラウザの中だけで処理し、送信しません。

JSON差分チェッカーでできること

2つのJSONを並べて貼り付けると、どのパスで値が追加・削除・変更されたか、型が変わったかを一覧にします。APIのレスポンスや設定ファイルの変更点を確かめたいときに使えます。

使い方

  1. 「A(変更前)」と「B(変更後)」の欄にJSONを貼り付けます。
  2. 書式に誤りがあると、欄の下に何行何文字目か(位置)と原因が表示されます。
  3. 正しく読めると、下に差分の件数(追加・削除・変更・型違い)と、パスごとの一覧が出ます。
  4. 並び順が違うだけの文字列・数値の配列を同じとみなしたいときは「配列を順不同で比較」をオンにします。
  5. 「結果をコピー」で差分一覧をテキストとしてコピーできます。AとBを逆にしたいときは「A⇄B 入れ替え」を押します。

計算の仕組みと注意点

よくある質問

2つのJSONの違いをキーの順番を無視して比べられますか?

はい。このツールはキー名で突き合わせるため、キーの並び順が違うだけなら「差分はありません」と表示されます。

配列の途中に1件追加したら、その後ろが全部「変更」になりました。

配列は同じ番号どうしを比べるため、途中に挿入されると以降の番号がずれて変更に見えます。文字列や数値だけの配列なら「配列を順不同で比較」をオンにすると、増えた値だけが「追加」として出ます。

JSONのエラー位置はどう見ればいいですか?

欄の下に「3行 15文字目(位置 42)」のように表示されます。末尾の余分なカンマ、閉じ括弧の不足、シングルクォートの文字列などがよくある原因で、メッセージにも理由が書かれます。

パスの $.items[1].price はどういう意味ですか?

$がJSON全体、.itemsがitemsというキー、[1]が配列の2番目(0から数える)、.priceがその中のpriceキーです。記号や空白を含むキーは["キー名"]の形で表示されます。