在此运行 完全在你的浏览器里运行,不上传、不登录
JSON Merge Patch
按 RFC 7396 应用 JSON Merge Patch,合并结果并统计改了哪些键。
对象递归合并,null 删除键,数组与标量整体替换。
原文档
补丁文档
合并结果
怎么用
- 把原文档粘贴到左栏 —— 也就是你要改的那份对象。
- 把补丁文档粘贴到右栏。想删掉的键,值写成 null。
- 点 Apply patch。合并结果出现在下方,按两空格缩进格式化。
- 看变更统计:有多少键被新增、删除或改了值。
- 用 Copy 或 Download 把结果带回编辑器或配置流水线。
常见用法
- 发送前预演 PATCH 请求体 —— 先看一眼 merge patch 会把资源改成什么样,再决定要不要发。
- 改嵌套配置 —— 只写你要动的那些键,深层对象自动递归合并。
- 安全地删键 —— null 表示删除,这正是 RFC 7396 区别于普通「合并」的地方。
- 讲清它与 JSON Patch 的区别 —— merge patch 没有操作列表,所以数组一定是整体替换。
- 核对别人给的补丁 —— 变更计数能看出它是否动了本不该动的字段。
常见问题
问:数据会上传吗? 答:不会。两份文档都在页面里用 JSON.parse 解析、在内存中合并。接口载荷、带令牌的配置文件、客户记录都不会离开设备,整个过程中不发起任何请求。
问:怎么删除一个键? 答:在补丁里把它的值写成 null。这是 RFC 7396 唯一的删除手段 —— 写空字符串或空对象,键都还在。
问:为什么数组是整体替换而不是合并? 答:merge patch 把数组当标量处理。要么在补丁里给出完整的新数组,要么改用带操作指令的 JSON Patch(RFC 6902)做元素级修改。
问:补丁里的值是对象、目标里同键是标量时会怎样? 答:标量会被这个对象替换。只有两侧在该键上都是对象时才会递归。
问:原文档可以是数组吗? 答:RFC 7396 定义的是对象间的合并。根是数组时,补丁会对着一个空对象应用,结果基本等于补丁本身 —— 想避免意外,请从对象开始。
你的数据留在这台设备上
JSON Merge Patch 完全在本地运行。你粘贴或拖入的一切都由你自己的浏览器处理,不会被传走。我们的服务器不保存任何东西——关掉标签页就没了。
你输入的内容不会发往服务器、不被记录,也不用于分析统计。首次加载之后即使断网,这个页面照样能用。