文本 / JSON Diff 对比

并排比较文本或 JSON,快速看出哪里被新增、删除或改动。

原始内容
修改后
差异结果
已准备好。粘贴左右两版内容即可对比。

文本和 JSON 会在浏览器本地对比,不会上传到 BroBroGo。

常见问题

文本模式和 JSON 模式有什么区别?

文本模式按行或按词比较原文;JSON 模式会先解析并统一格式,再列出 $.user.email 这类字段路径的改动。

很大的内容能比较吗?

比较会在后台运行,超过 2.5 秒会停止。意外粘贴过大的内容也会被拦下,避免页面卡死。

JSON 模式会忽略对象 key 的顺序吗?

字段级改动会按 key 名称比较,所以单纯调整对象 key 顺序不会算作语义变化。数组会按位置比较。

文本与 JSON 差异对比原理

在软件开发、数据迁移和文档协作中,快速准确地识别两个版本之间的差异(Diff)是一项基础且关键的任务。差异对比的核心在于找出从“原始内容”转换到“修改后”内容所经历的具体步骤,这些步骤通常被归纳为三种类型:新增、删除和修改。

通过并排对比的方式,用户可以直观地看到两个版本之间的变化。在对比过程中,系统会精确标记出哪些文本被移除,哪些新文本被插入,以及哪些内容发生了局部改动。这种直观的视觉反馈能够帮助开发人员快速核对配置文件的变更,帮助分析人员确认 API 响应的微调,以及帮助文档编辑者校验文本的修改。

文本对比模式与粒度控制

在“文本”对比模式下,工具提供了不同的比较粒度,以适应不同的文本结构和比对需求:

  • 按行对比:以行为最小单位进行比较。这种模式非常适合对比代码文件、配置文件、日志输出或每行具有独立意义的列表数据。
  • 按词对比:以单词或词语为最小单位进行比较。当需要精细检查段落内部的字词修改、拼写纠正或微小调整时,按词对比能够提供更精确的定位。

为了便于快速测试,工具内置了文本示例。 左侧示例动作为:

BroBroGo 工具在浏览器本地运行。
它们快速、私密、简单。
适合需要快速检查的时候使用。

右侧示例动作为:

BroBroGo 工具在浏览器本地运行。
它们快速、私密、专注。
适合需要快速对比的时候使用。

通过对比这两个版本,工具会清晰地标示出“简单”到“专注”以及“检查”到“对比”的词级或行级改动。

JSON 结构化数据对比规则

与纯文本的逐行比对不同,JSON 是一种具有严格层级结构的结构化数据格式。如果仅从文本层面进行对比,可能会因为格式化空格、缩进或属性顺序的变化而产生大量的干扰噪点。因此,在“JSON”模式下,工具采用了一套符合 JSON 语义的专用对比规则:

  1. 忽略键值顺序(Semantic Comparison):在 JSON 对象中,成员键值对的顺序在语义上是无序的。工具在对比 JSON 对象时,会按 key 的名称进行匹配和比较,因此单纯调整对象内部 key 的排列顺序并不会被判定为语义上的修改。
  2. 按位置对比数组(Array Comparison):与对象不同,JSON 中的数组是有序列表。工具在处理数组时,会严格按照元素所在的索引位置进行并排对比。
  3. 路径级差异定位:在检测到差异时,工具不仅会指出值的变化,还会提供具体的结构化路径,帮助用户在复杂的嵌套 JSON 中精确定位到发生变化的字段。

使用内置的 JSON 示例可以直观地观察这一机制。 左侧原始 JSON 示例:

{
 "name": "BroBroGo",
 "plan": "free",
 "tools": ["json", "regex", "hash"],
 "private": true
}

右侧修改后 JSON 示例:

{
 "name": "BroBroGo",
 "plan": "free",
 "tools": ["json", "regex", "diff"],
 "private": true,
 "updated": 2026
}

在此示例中,工具会准确识别出 tools 数组中索引为 2 的元素由 "hash" 变更为 "diff"(修改),并识别出新增了键值对 "updated": 2026(新增)。

浏览器本地处理与隐私保护

本工具在设计上完全基于客户端运行。用户输入的“原始内容”与“修改后”内容均在用户的浏览器本地进行解析、比对和渲染,整个处理过程不会将任何数据上传到服务器。

这种本地处理机制不仅消除了敏感数据泄露的风险,适合用于处理包含配置信息、临时 API 响应或个人文本的数据,同时也避免了网络传输带来的延迟,提供了即时的对比反馈。

异常处理与大文本限制

为了保证浏览器的响应速度和页面的稳定性,工具针对大文本和异常输入设计了完善的限制与容错机制:

  • 输入长度限制:单侧输入框的最大字符数限制为 300,000 字符。如果粘贴的内容超出此限制,工具会拦截并提示:“输入内容太大了,请换一组更小的内容对比。”
  • 对比超时保护:复杂的差异计算如果耗时过长,会在 2.5 秒后自动终止。此时工具会提示:“这次对比耗时太久。请缩小输入,或改用按行比较。”
  • 结果截断:对于较大的输入,为了防止页面卡死,工具可能会对输出结果进行截断,并提示:“结果已截断显示,以保持页面响应。”
  • 格式校验:在 JSON 模式下,如果输入的 JSON 格式不合法,工具会中止对比并明确指出错误位置,例如提示:“左侧 JSON 无效:”或“右侧 JSON 无效:”并附带具体的解析错误信息。
  • 其他异常:若遇到无法处理的特殊情况导致对比失败,工具会显示:“无法完成这次对比。”

常见问题

文本模式和 JSON 模式有什么区别?

文本模式按行或按词比较原文;JSON 模式会先解析并统一格式,再列出 $.user.email 这类字段路径的改动。

很大的内容能比较吗?

比较会在后台运行,超过 2.5 秒会停止。意外粘贴过大的内容也会被拦下,避免页面卡死。

JSON 模式会忽略对象 key 的顺序吗?

字段级改动会按 key 名称比较,所以单纯调整对象 key 顺序不会算作语义变化。数组会按位置比较。