JSON差分ツール

2つのJSONを貼り付けてください。追加、削除、変更された値を、そのパスとともに一覧にします。左の文書を右の文書に変えるRFC 6902のJSON Patchも書き出します。

無料 ブラウザで動作 2026年11月10日火曜日確認済み

1つ目の文書で、通常は古いバージョンです。その値は、各変更の「変更前」になります。

2つ目の文書で、通常は新しいバージョンです。その値は、各変更の「変更後」になります。

配列を集合として比べるため、ただ位置が動いただけの項目は変更になりません。

結果

違いの数 — 追加、削除、変更された値の合計です。
妥当性 — 両方のテキストが正しいJSONかどうか、正しくないものがあればどちらかを示します。
要約 —
パッチの確認 — パッチをブラウザ内で左の文書に適用し、結果を右の文書と比べます。
JSON Patch(RFC 6902)
違い

このツールはブラウザ内で動作します。入力した内容が当社に送信されることはありません。

使い方

  1. 古いJSONを左のJSONに、新しいJSONを右のJSONに貼り付けます。
  2. 配列がタグの一覧などの集合なら、配列の項目の順序を無視するにチェックを入れます。
  3. 違いの表を読みます。各行には値のパス(JSONポインター)があります。パッチの確認が適用できると示したら、JSON Patch(RFC 6902)をコピーします。

文書の比べ方

2つの文書は値によって比べられます。JSONではオブジェクトはメンバーの集合と定められているため、オブジェクトの名前の順序は問題になりません。配列は順序のあるリストなので、オプションにチェックを入れない限り、項目の順序が問題になります。

数値は数として比べるため、1と1.0は同じです。RFC 8259のセクション6は、-(2^53)+1から(2^53)-1までの整数はどの実装でも同じように読まれると述べています。それより長い整数は、読み取られるときに丸められることがあります。

パスとパッチ

パスはJSONポインター(RFC 6901)です。各段階は名前か添字で、スラッシュで区切ります。タグのリストの最初の項目は/tags/0で、空のパスは文書全体を指します。名前の中のスラッシュは~1、チルダは~0と書きます。

JSON Patch(RFC 6902)は、add、remove、replaceの3つの操作を使います。削除される配列の項目は後ろから取り除かれるため、使われる時点で各添字が正しいままになります。追加される項目は、RFC 6902が配列の末尾と定める添字「-」を付けて追加されます。

配列の順序を無視する

このオプションにチェックを入れると、項目は位置にかかわらず値で対応付けられます。対応する相手のない項目は、追加または削除として報告されます。順序が違うだけでなく内容も違う配列は、パッチでは配列全体が置き換えられます。項目がどう動いたかを知らないと、項目を動かすだけのパッチは作れないからです。パッチは、配列を右の文書の順序で書きます。

計算例:初期値の文書

左の文書には、名前FireToolLand、version 1、タグのjsonとcsv、freeがtrueの値があります。右の文書には、version 2、タグのcsv、json、yaml、そしてlicenseがnullの値があります。順に読むと、違いは6つです。version、変わった2つのタグ、追加されたyamlのタグ、削除されたfree、追加されたlicenseです。

「配列の項目の順序を無視する」にチェックを入れると、タグは順序だけが違う同じ2つの項目になるため、タグの違いはyamlだけになり、件数は4に減ります。

結果 初期値の文書 順序を無視
違いの数 6 4
要約 追加2件、削除1件、変更3件。 追加2件、削除1件、変更1件。

よくある質問

配列の項目の順序は、なぜ問題になるのですか?

JSONでは配列は順序のあるリストなので、[1,2]と[2,1]は別のデータです。タグや権限の一覧のように配列が集合である場合は、「配列の項目の順序を無視する」にチェックを入れてください。

/tags/0のようなパスは、何を意味しますか?

JSONポインター(RFC 6901)で、メンバーtagsと、その最初の項目を指します。添字は0から数えるためです。空のパスは文書全体を意味し、スラッシュを含む名前では、その代わりに~1と書きます。

1と1.0は同じ値ですか?

はい。どちらも数の1なので、ページは違いを報告しません。2^53より大きい整数はJSONのパーサーで丸められることがあるため、長い識別子は文字列として比べてください。

JSON Patchは何に使いますか?

サーバーやライブラリが、ある文書に適用して別の文書を得るための手順の一覧です(RFC 6902)。例えば、保存された設定ファイルを更新するときに使います。パッチの確認は、その手順で右の文書が得られることを示します。

順序を無視すると、配列全体が置き換えられるのはなぜですか?

順序を無視する場合、変わった配列を正しい配列に変えるための単一の手順は、項目がどう動いたかを知らないと作れません。そのためパッチは、正しい配列を全体で書きます。

入力したJSONは、どこかに送られますか?

いいえ。両方のテキストはお使いのブラウザの中で読み取られて比べられ、貼り付けた内容は、当サイトのサーバーに送られることも、保存されることもありません。

出典

数値と文章の最終確認日:2026年11月10日火曜日。

当サイトの運営に必要なCookieを使用します。お客様の同意があれば、Googleは広告用Cookieを使い、パーソナライズ広告を表示します。拒否された場合も広告は表示されますが、パーソナライズはされません。