JSON差分・比較ツール
2つのJSONを比較し、追加・削除・変更されたキーのパスを強調表示します。
JSON差分・比較ツール — 2つの JSON を並べて貼り付けると、このツールは単純な行単位の差分ではなく、キーごとの構造的な比較を行います。そのためキーの並べ替えや空白の違いで誤検出が起きることはありません。各差分は user.name や items[0] のような正確なパスで示され、追加・削除・変更として分類されます。解析と比較はすべてブラウザ内で完結するため、データが端末の外に出ることはありません。
JSON差分・比較ツールとは?
JSON Diff は、2 つの JSON 値の意味的な違いを見つける、ブラウザ内で動作する無料ツールです。テキストを 1 行ずつ比較するのではなく、両方のツリーをたどってキーを名前で、配列要素をインデックスで突き合わせ、config.server.port や list[2] のようなドット区切りのパスで各変更を報告します。バックエンドや API の開発者は 2 つの API レスポンス・設定ファイル・テストデータの間で何が変わったかを正確に確認するために使い、QA エンジニアやデータアナリストは変換やマイグレーションが期待どおりの結果を生んだかを確かめるために使います。記号スタイルを選べば変更を + / - / ~ の行として、文字スタイルを選べば追加・削除・変更として読めます。入れ替えボタンは左右の入力を反転させ、どちらの向きからでも差分を確認できます。
JSON差分・比較ツールの使い方
- 元の JSON を「左(元)」ボックスに貼り付けます。
- 比較したい JSON を「右(変更後)」ボックスに貼り付けます。
- 結果ブロックで差分を確認します。各行に変更されたパスと値が表示されます。
- スタイル設定で、+ / - / ~ の記号と、追加 / 削除 / 変更の文字を切り替えます。
- 入れ替えで左右を反転し、コピーで差分レポート全体を取得します。
使用例
1つの値が変わった場合
入力
左: {"name":"Ada","age":30}
右: {"name":"Ada","age":31}出力
~ age: 30 -> 31
キーが1つ追加され1つ削除された場合
入力
左: {"a":1,"b":2}
右: {"a":1,"c":3}出力
- b: 2 + c: 3
キーの並べ替えは同一とみなされる
入力
左: {"x":1,"y":2}
右: {"y":2,"x":1}出力
差分なし — 2つのドキュメントは同じです。
よくある質問
- 私の JSON はサーバーに送信されますか?
- いいえ。両方のドキュメントは、端末上で動作するディープ差分処理によってブラウザ内で解析・比較されます。何もアップロードされず、オフラインでも動作します。
- 通常のテキスト差分と何が違いますか?
- テキスト差分は行同士を比較するため、再フォーマットやキーの並べ替えも変更のように見えます。このツールは解析後の構造を比較し、オブジェクトのキーを名前で、配列要素を位置で突き合わせるので、本当の意味的な違いだけを報告します。
- キーの順序は関係ありますか?
- 関係ありません。同じキーと値を持つ 2 つのオブジェクトは、キーの出現順に関わらず同一とみなされます。ただし配列要素はインデックスで比較されるため、配列の並べ替えは変更として扱われます。
- 各行は何を意味しますか?
- 追加されたパスは右側にのみ存在し、削除されたパスは左側にのみ存在し、変更されたパスは両側で値が異なります。記号スタイルでは +、-、~ として、文字スタイルでは言葉で表されます。
- JSON が無効な場合はどうなりますか?
- どちらかの側が解析できないと、左右どちらが無効かをエラー表示で知らせるので修正できます。両側が正しく解析できると、差分は自動的に更新されます。
関連ツール
Base32 / Base58 エンコード / デコード
テキストを Base32(RFC 4648)または Base58(ビットコイン用文字)にエンコードし、元に戻すこともできます(UTF-8 対応、ブラウザ内処理)。
Base64 エンコード / デコード
テキストを Base64 にエンコード、または Base64 をテキストにデコードします(UTF-8 対応)。
大文字小文字変換・カウントツール
テキストの大文字・小文字を変更し、文字数、単語数、行数をカウントします。
コード整形・圧縮ツール
HTML・CSS・JavaScript をブラウザ内で瞬時に整形または圧縮し、2スペース・4スペース・タブのインデントに対応します。