DevFormatLab

JSON 比較

比較 · 差分ハイライト

両側に JSON を貼り付けると、行単位で並べて比較し、差分を色でハイライト表示します。

+4 追加 · -3 削除 · =5 一致
比較元 JSON有効
比較先 JSON有効

両側の入力はブラウザ内で完全に処理され、アップロードされません。

JSON 比較とは?

JSON 比較ツールは、2 つの JSON ドキュメントを比較し、両者の差分(追加されたプロパティ、削除されたプロパティ、変更された値)をハイライト表示します。プレーンテキスト diff(git diff など)は再フォーマットされた行をすべて変更扱いしますが、構造を理解した JSON diff は {"a":1,"b":2} と {"b":2,"a":1} を同じオブジェクトと認識し、整形版と圧縮版が意味的に等しいことも判別できます。これは API レスポンスの変更追跡、環境間のコンフィグドリフト調査、フィーチャーフラグの段階的ロールアウト検証、突然壊れたテスト fixture のデバッグ、外部連携が実際に送ってくるデータの監査に不可欠です。 DevFormatLab の JSON 比較は 1 つのワークスペースに 2 つのビューを併設します。テキストビューは LCS アルゴリズムによる定番の左右赤緑比較で、スクショ共有やスニペット転載に向きます。構造ビューは差分をパスのリスト(例:$.user.email、$.items[3].price)に蒸留し、各項目を追加 / 削除 / 変更でタグ付け、RFC 6902 準拠の JSON Patch ドキュメントとして書き出せます — 任意の標準ライブラリでプログラム的に再適用可能です。既定でオブジェクトキーをソートしてから比較するためプロパティ順による誤検知が起きず、オプションの「Ignore array order」を有効にすれば、タグや権限 ID のような順序を持たない集合も正しく比べられます。両側の入力はブラウザ標準の JSON.parse でパースし、メモリ上で比較してローカルに描画するだけ — ページ読み込み後は一切のネットワークリクエストを発行しないので、本番のシークレットや顧客データもそのままデバイスに留まります。

機能

  • 並べて表示するテキストビュー(行単位の赤緑ハイライト)
  • 構造ビュー:変更パスのリスト + 追加 / 削除 / 変更タグ
  • RFC 6902 JSON Patch エクスポート — 標準ライブラリで再適用可能
  • キーソートのオプションで順序違いを差分扱いしない
  • Ignore array order:タグ・ロール ID 等の順序なし集合に最適
  • 両ペインで縦・横スクロール同期
  • 両側で個別に厳格な JSON 検証・個別エラー表示
  • 100% ブラウザ内処理 — JSON データはデバイスを離れません

使い方

  1. 左に元の JSON、右に変更後の JSON を貼り付けます。整形済みでも圧縮済みでも、内部で再フォーマットしてから比較するので問題ありません。
  2. 「Sort keys」を有効(既定)のままにすると、オブジェクトプロパティの順序に依存しない比較になります。順序自体が契約の一部であるときだけ無効にします。
  3. タグや権限リストなど順序を持たない集合の場合は「Ignore array order」を ON に — 両側の配列を再帰的にソートしてから比較します。
  4. 下部に色付きの並べて表示される差分が出ます:赤行は削除、緑行は追加、変更なしの行はニュートラル。同期スクロールで長文書もナビゲートできます。
  5. 構造ビューに切り替えると、変更パスのコンパクトな一覧とライブの RFC 6902 patch が見えます。Export Patch で patch.json をダウンロード可能。
  6. Swap で比較方向を反転、Format both で両側をその場で 2 スペース整形できます。

よくある質問

JSON データはサーバーに送信されますか?

いいえ。両側の JSON は完全にブラウザ内で解析・比較されます。アップロードは行われません。

なぜキーの並び替えは既定で差分として表示されないのですか?

JSON のオブジェクトキーは仕様上順序を持たないため、DevFormatLab は比較前のシリアライズ時にキーをソートします。順序が重要な用途ではこの動作を無効化できます(開発予定)。

ネストしたオブジェクトや配列はどう比較されますか?

両側を 2 スペースインデントで整形し、LCS アルゴリズムで行単位に比較します。ネスト構造は複数行に展開されるため、変更箇所が明確に局所化されます。

サイズ制限はありますか?

比較は行数 n × m の計算量です。各側 5,000 行を超える非常に大きな JSON では一時的に重くなる可能性があります。一般的な API ペイロードや設定ファイルは瞬時に表示されます。

配列の要素順の変更は差分として検出されますか?

はい。JSON では配列は順序を持つため、要素順の変更は差分として扱われます。順序を無視したい場合は事前に配列をソートしてください。

関連ツール

Canonical: https://devformatlab.com/ja/json-diff