テキスト / JSON 差分比較

テキストやJSONを左右に並べて比較し、変更された箇所を正確に特定します。

変更前
変更後
差分
準備完了。比較する両方のバージョンを貼り付けてください。

テキストとJSONの比較はすべてお使いのブラウザ上で行われます。BroBroGoにデータがアップロードされることはありません。

よくある質問

テキストモードとJSONモードの違いは何ですか?

テキストモードは、生のコンテンツを行単位または単語単位で比較します。JSONモードは、まず両方のデータを解析して一貫したフォーマットに整形した上で、$.user.email のように変更されたパスをリストアップします。

非常に大きな入力データも処理できますか?

処理に時間のかかる比較は2.5秒後に停止します。ページの応答性を維持するため、非常に大きなデータが誤って貼り付けられた場合は上限が適用されます。

JSONモードではオブジェクトのキーの順序は無視されますか?

構造化変更リストはオブジェクトのキーを名前で比較するため、キーの順序のみの違いは意味的な変更として報告されません。配列は要素の位置によって比較されます。

テキストとJSONの差分比較における基本概念

差分比較(diff)とは、2つのデータ群を突き合わせ、その間にある追加、削除、変更といった差異を特定する処理です。構成ファイルの更新履歴の確認、APIレスポンスの検証、データ移行前後におけるJSONデータの整合性チェック、あるいは短いテキストの校正など、開発者やアナリストにとって正確な差分抽出は不可欠な作業です。

本ツールは、比較対象となる2つの入力データを左右に並べて比較し、変更箇所を視覚的に特定します。


テキストモードにおける比較と粒度

テキストモードでは、プレーンテキストを対象に「行」または「単語」の単位(粒度)で比較を行います。

  • 行単位の比較: 行全体を1つの要素として扱い、行の追加・削除・変更を検出します。
  • 単語単位の比較: 行内の個々の単語レベルまで細分化して比較するため、1行の中のわずかな修正箇所も正確に特定できます。

テキスト比較のサンプル例

本ツールに用意されているテキストサンプルの構成は以下の通りです。

  • 変更前(左側):
    BroBroGoのツールはブラウザ上で動作します。
    高速で、プライバシーが守られ、シンプルです。
    手早く確認したいときにご利用ください。
    
  • 変更後(右側):
    BroBroGoのツールはブラウザ上で動作します。
    高速で、プライバシーが守られ、目的に特化しています。
    手早く比較したいときにご利用ください。
    

この2つのテキストを比較すると、「シンプルです。」から「目的に特化しています。」への変更、および「確認」から「比較」への変更が検出されます。


JSONモードにおける構造化データの比較

JSONモードでは、単なる文字列としての比較ではなく、JSONのデータ構造を解析(パース)した上で比較を行います。

  • キーの順序: オブジェクトのキーは名前によって比較されます。そのため、キーの記述順序が入れ替わっているだけであれば、意味的な変更(セマンティックな変更)としては報告されません。
  • 配列の比較: 配列(Array)は要素の位置(インデックス)に基づいて比較されます。
  • 構造化パスの特定: 変更が検出された場合、対象のデータが存在する場所を構造化されたパス(例: $.user.email など)としてリストアップします。

JSON比較のサンプル例

本ツールに用意されているJSONサンプルの構成は以下の通りです。

  • 変更前(左側):
    {
     "name": "ブロブロゴー",
     "plan": "無料プラン",
     "tools": ["json", "regex", "hash"],
     "private": true
    }
    
  • 変更後(右側):
    {
     "name": "ブロブロゴー開発ツール",
     "plan": "無料プラン(制限あり)",
     "tools": ["json", "regex", "diff"],
     "private": true,
     "updated": 2026
    }
    

この比較を実行すると、nameplan の値の変更、tools 配列の3番目の要素の変更(hash から diff への変更)、および新規キー updated の追加が構造的に検出されます。


入力制限とエラーハンドリング

ブラウザ側のリソースを保護し、ページの応答性を維持するために、本ツールには以下の制限とエラー処理が組み込まれています。

  • 文字数制限: 左右それぞれの入力エリアの上限は300,000文字です。これを超えるデータを入力すると、「入力データが大きすぎます。より小さなデータで比較してください。」というエラーが表示されます。
  • タイムアウト: 比較処理が重く、2.5秒以上かかる場合は処理を自動的に停止し、「比較処理に時間がかかりすぎています。より小さな入力データにするか、行モードをお試しください。」と表示されます。
  • 表示制限: 処理結果が極めて大きい場合、ページのフリーズを防ぐために出力を制限し、「ページの応答性を維持するため、制限された結果を表示しています。」という警告を表示します。
  • 構文エラー: JSONモードにおいて、入力されたデータが不正なフォーマットである場合、それぞれ「左側のJSONが無効です:」または「右側のJSONが無効です:」に続いてエラー内容が表示されます。
  • 比較失敗: その他の原因で比較が実行できない場合は、「これらの入力を比較できませんでした。」と表示されます。

ブラウザ内処理とプライバシー

本ツールに入力されたテキストやJSONデータは、すべてお使いのブラウザ上でローカルに処理されます。外部のサーバーにデータが送信されたり、BroBroGoにアップロードされたりすることは一切ありません。そのため、外部への送信を避けたいデータであっても、ローカル環境でそのまま比較を行うことができます。


よくある質問(FAQ)

テキストモードとJSONモードの違いは何ですか?

テキストモードは、生のコンテンツを行単位または単語単位で比較します。JSONモードは、まず両方のデータを解析して一貫したフォーマットに整形した上で、$.user.email のように変更されたパスをリストアップします。

非常に大きな入力データも処理できますか?

処理に時間のかかる比較は2.5秒後に停止します。ページの応答性を維持するため、非常に大きなデータが誤って貼り付けられた場合は上限が適用されます。

JSONモードではオブジェクトのキーの順序は無視されますか?

構造化変更リストはオブジェクトのキーを名前で比較するため、キーの順序のみの違いは意味的な変更として報告されません。配列は要素の位置によって比較されます。