JSON 差分ビューア
左のJSON
右のJSON
差分出力
技術的な詳細
JSON Diff ツールの仕組み
このツールでできること
JSON Diff ツールは、2つの JSON ドキュメントを深い構造レベルで比較し、あらゆるネスト階層で追加・削除・変更されたキーを特定します。結果は色分けされたハイライトで表示され、ネストしたオブジェクトや配列の差分を含め、何が変わったのかを正確に示します。これは生のテキスト行を比較するのではなく、JSON 構造を理解したセマンティックな diff を提供します。
開発者によくある利用シーン
開発者は JSON diff を使って、コード変更前後の API レスポンスを比較したり、設定ファイル更新が意図した変更のみを含むことを確認したり、環境別設定(ステージング vs 本番)の差異をデバッグしたりします。Terraform plan の出力レビュー、OpenAPI スキーマのバージョン比較、データベース移行スクリプトが JSON エクスポート上で期待どおりのスキーマ変更を生成しているかの検証にも不可欠です。
データ形式、型、またはバリエーション
このツールは構造比較を行い、JSON オブジェクトは仕様上順序を持たないため、オブジェクトのキー順は同一性に影響しません。一方で、配列要素の順序は重要です。型の変更(文字列 '1' vs 数値 1)は変更として報告されます。null 値は欠落キーと区別されます。深くネストした差分は完全な JSON パスとともに報告されるため、複雑なドキュメントでも各階層を手動で展開せずに変更箇所を特定できます。
よくある落とし穴とエッジケース
配列の差分は、途中に要素が挿入・削除されるとノイズが増え、以降のインデックスがすべて変更として表示されることがあります。浮動小数点数はシリアライズ精度の違い(1.0 vs 1.00000000001)により、意味のある変更ではないのに差分として見える場合があります。1階層に数千キーがある非常に大きな JSON ドキュメントでは、diff 出力が圧倒的になることがあります。サブセクションごとに個別比較することを検討してください。コメントは有効な JSON ではないため、コメント付きの設定ファイルは比較前にコメントを除去する必要があります。
コードではなくこのツールを使うべき場面
このブラウザツールは、デバッグやコードレビュー中に2つの JSON ペイロードを素早く視覚的に比較するのに便利です。自動回帰テスト、CI パイプライン、またはプログラムによる diff 生成には、json-diff(npm)、deepdiff(Python)、あるいはテストスイートに統合でき、機械可読なパッチ出力(RFC 6902 JSON Patch 形式)を生成できる jq ベースの比較などのライブラリを使用してください。