JSON Merge Patch 应用
JSON Merge Patch(RFC 7396)应用工具。粘贴目标 JSON 和一份 Merge Patch,工具按规范合并:patch 中的键会覆盖目标、null 值表示删除该键、非对象的 patch 会整体替换目标。适合模拟 HTTP PATCH 请求的效果,合并全部在浏览器本地完成,数据不上传。
怎么使用
- 1
粘贴目标 JSON
左侧放入要被修改的原始数据,或选择本地文件。
- 2
粘贴 Merge Patch
右侧放入补丁对象(一份「像结果的对象」,只写要改的键)。
- 3
停顿后自动应用
按 RFC 7396 递归合并,右侧输出结果;某一侧不是合法 JSON 时指出是第几行第几列。
- 4
复制或反向生成
复制合并结果,或切到「生成」模式,从两份 JSON 反推补丁。
功能特点
严格 RFC 7396
null 删除键、对象递归合并、非对象整体替换,行为与规范一致。
双栏对照
目标、补丁、结果同屏,改一处即时看到效果。
分侧报错
目标或补丁不是合法 JSON 时,明确提示是目标侧还是补丁侧,并给出行列位置。
Worker 本地计算
合并在浏览器后台线程完成,数据不上传。
常见错误与排查
- ! Merge Patch 不能用 null 设置「值为 null」——null 一律表示删除该键;确实需要 null 值时应改用 JSON Patch 或整体替换。
- ! 数组会被整体替换,不会逐项合并;patch 里写数组就是「替换成这个数组」。
常见问题
Merge Patch 和 JSON Patch 有什么区别?
JSON Patch(RFC 6902)用一组 add / remove / replace 操作描述改动,精确但啰嗦;Merge Patch(RFC 7396)用一份「像结果的对象」描述改动,简单直观,但无法直接设置 null、数组只能整体替换。
补丁里的 null 会怎样?
表示删除目标中的对应键;如果目标本来没有该键则无影响。
数据会被上传吗?
不会,合并在浏览器本地完成。
相关工具
JSON Merge Patch 生成
对比两份 JSON 生成 RFC 7396 Merge Patch 补丁,只保留差异,可用一条 PATCH 请求更新资源。
JSON Patch 生成 / 应用
对比两份 JSON 生成 RFC 6902 patch 操作序列,或把 patch 应用到目标 JSON,支持 add / remove / replace / move / copy / test。
JSON 对比(Diff)
左右分栏对比两份 JSON,新增、删除、修改分三种颜色,可忽略 key 和数组的顺序。
JSON Pointer 查询
用 RFC 6901 JSON Pointer(如 /users/0/roles/1)在 JSON 文档中定位节点,支持 ~0 / ~1 转义,查到结果可单独复制。