数据实验室文本与 JSON 对比切换工具

文本与 JSON 对比

对比任何内容的两个版本,如配置文件、译文或合同,直接看到每个变化行内改动的词,而不是两大片红绿色块。你粘贴的内容只留在当前标签页中。

  • 粒度: 行级和词级
  • 导出: Unified diff
  • 你的文档: 不会离开当前标签页

修改前

原始版本。可粘贴,或打开文件。

修改后

修改后的版本,将与“修改前”对比。

变化

修改 3 行,新增 2 行,删除 1 行。

对比视图行内视图标出变化的词,统一视图是 git 使用的补丁格式。
更多选项
已修改
3
行被改写
新增
2
新增行
删除
1
被删除的行
未变化
4
保留的行
1{
2 "name": "checkout-service",
3 "version": "2.4.0",
3 "version": "2.5.1",
4 "retries": 3,
4 "retries": 5,
5 "timeoutMs": 5000,
6 "regions": ["eu-west", "me-south"],
6 "regions": ["eu-west", "me-south", "us-east"],
7− "notes": "Falls back to the queue when the gateway is down."
7+ "featureFlags": { "instantRefund": true },
8+ "notes": "Falls back to the queue when the gateway is unavailable."
8}
对比在当前标签页中完成,没有上传任何内容。

为什么要标出变化的词

逐行对比只告诉你这一行变了,逐词对比则告诉你是哪个词变了。对配置文件或译文来说,这就是全部答案,所以变化的行在这里会显示两次:一次是删除的内容,一次是新增的内容。

什么时候不配对

相邻的两行未必是互相改写的关系。当被删除的行和新增的行几乎没有共同内容时,会分开显示,而不是合成一行并标记每个词,那样看起来只是杂乱。

对于 JSON,请改用按路径对比

对 JSON 做文本对比,会把调换顺序的一个键算作一处改动,把重新缩进算作上百处改动。JSON 工具箱按路径对比,每个变化的值占一行,对于数据内容而不是文件来说,这通常正是你想要的。

常见问题

如何在线安全地对比两段文本?
使用在浏览器内完成对比的工具。要对比的通常是配置文件、合同或译文,不该为了找出一个词的差异就发送到服务器。
什么是 unified diff 格式?
这是 git 和 patch 使用的格式:每处改动周围保留少量上下文行,用 - 标记删除,用 + 标记新增。它很适合粘贴到合并请求或工单中,本工具支持导出。
为什么有些改动显示为分开的删除和新增?
因为这两行并不是互相改写的关系。当被删除的行和新增的行几乎没有共同内容时,把它们配成一行会让几乎每个词都被标记,反而不如分开显示清晰。
这个工具适合对比 JSON 文件吗?
对文件可以。但对于 API 数据,建议用 JSON 工具按路径对比,因为文本对比会放大顺序和缩进带来的差异。