JSON Patch 生成器与应用器

在两份文档之间生成 RFC 6902 JSON Patch、把一个补丁应用到源文档,或运行一个 RFC 7386 合并补丁——全部在你的浏览器中完成。

JSON Patch 生成器完全在你的浏览器中运行。你粘贴的文档和补丁会在你的设备上进行差异比对和应用,绝不会上传到 ArrayKit。

打开 JSON 差异对比工具

关于 JSON Patch 生成器

JSON Patch 生成器会把两份 JSON 文档之间的差异变成一个整洁的 RFC 6902 操作数组——即把源文档变换为目标文档的 add、remove、replace、move 和 copy 步骤。切换到「应用」模式,即可对源文档运行一个补丁并查看确切结果,其中每个操作都会被校验,因此错误的操作或失败的 test 都会被捕获,而不是被悄悄跳过。第三种模式应用 RFC 7386 JSON 合并补丁,其中 null 值会删除一个键,而对象会逐键合并。它专为搭建 PATCH 端点、同步配置或审查 API 变更的开发者而打造。你的源文档、目标文档和补丁都在你的设备上处理,绝不会离开浏览器。

功能特性

如何使用 JSON Patch 生成器

  1. 选择「生成」以比对两份文档,选择「应用补丁」以运行一个 RFC 6902 补丁,或选择「合并补丁」以用于 RFC 7386
  2. 把你的源 JSON 粘贴到左侧
  3. 把目标文档、补丁数组或合并补丁粘贴到右侧
  4. 查看生成的操作或打补丁后的结果,然后复制或下载它

示例

输入

source: {"active":true,"roles":["admin"]}
target: {"active":false,"roles":["admin","editor"]}

输出

[
  { "op": "replace", "path": "/active", "value": false },
  { "op": "add", "path": "/roles/1", "value": "editor" }
]

「生成」会产生把源文档变成目标文档的 RFC 6902 操作。

常见错误与故障排除

常见问题

什么是 RFC 6902 JSON Patch?
RFC 6902 是一种格式,它把对 JSON 文档的改动描述为一个有序的操作数组——add、remove、replace、move、copy 和 test——每个都指向一个 JSON Pointer 路径。把该数组应用到源文档就会得到目标文档。
JSON 合并补丁(RFC 7386)与 JSON Patch(RFC 6902)有何不同?
合并补丁本身就是一个映射目标的 JSON 对象:存在的键会被设置,null 值会删除一个键,数组和标量则整体替换。它更简单,但无法像 RFC 6902 操作那样移动值或编辑单个数组元素。
我该如何从两份 JSON 文档生成一个补丁?
停留在「生成」,把原始版本粘贴到左侧,把改动后的版本粘贴到右侧,工具就会计算出最小的 RFC 6902 操作数组。差异比对会忽略键顺序,因此重新排序的字段不会产生虚假的操作。
为什么我的补丁应用失败了?
操作会针对源文档进行校验。常见原因包括:remove 或 replace 的路径不存在、一个 test 操作的值不匹配,或一个无效的操作名。工具会显示具体错误,让你能修正那个操作。
合并补丁真的会用 null 删除一个键吗?
是的。在 RFC 7386 中,一个被设为 null 的属性会指示合并从结果中移除该键。若要存储一个真正的 null,你必须改用 RFC 6902 的 replace 操作。
我的 JSON 文档和补丁会被上传到任何地方吗?
不会。生成器、补丁应用器和合并补丁引擎全都在你的浏览器本地运行。你的源、目标和补丁数据都在你的设备上处理,绝不会发送到 ArrayKit。

相关工具

全部 ArrayKit 工具