跳到正文
在此运行 完全在你的浏览器里运行,不上传、不登录

JSON Merge Patch

按 RFC 7396 应用 JSON Merge Patch,合并结果并统计改了哪些键。

对象递归合并,null 删除键,数组与标量整体替换。

原文档
补丁文档
合并结果

怎么用

  1. 把原文档粘贴到左栏 —— 也就是你要改的那份对象。
  2. 把补丁文档粘贴到右栏。想删掉的键,值写成 null。
  3. 点 Apply patch。合并结果出现在下方,按两空格缩进格式化。
  4. 看变更统计:有多少键被新增、删除或改了值。
  5. 用 Copy 或 Download 把结果带回编辑器或配置流水线。

常见用法

常见问题

问:数据会上传吗? 答:不会。两份文档都在页面里用 JSON.parse 解析、在内存中合并。接口载荷、带令牌的配置文件、客户记录都不会离开设备,整个过程中不发起任何请求。

问:怎么删除一个键? 答:在补丁里把它的值写成 null。这是 RFC 7396 唯一的删除手段 —— 写空字符串或空对象,键都还在。

问:为什么数组是整体替换而不是合并? 答:merge patch 把数组当标量处理。要么在补丁里给出完整的新数组,要么改用带操作指令的 JSON Patch(RFC 6902)做元素级修改。

问:补丁里的值是对象、目标里同键是标量时会怎样? 答:标量会被这个对象替换。只有两侧在该键上都是对象时才会递归。

问:原文档可以是数组吗? 答:RFC 7396 定义的是对象间的合并。根是数组时,补丁会对着一个空对象应用,结果基本等于补丁本身 —— 想避免意外,请从对象开始。

你的数据留在这台设备上

JSON Merge Patch 完全在本地运行。你粘贴或拖入的一切都由你自己的浏览器处理,不会被传走。我们的服务器不保存任何东西——关掉标签页就没了。

你输入的内容不会发往服务器、不被记录,也不用于分析统计。首次加载之后即使断网,这个页面照样能用。