JSON 工具

JSON 合并先看清覆盖了什么

分别选择对象深度、冲突优先级和数组策略,检查结果后再导出。

JSON 合并

左侧 JSON 输入

右侧 JSON 输入

合并结果预览

编辑器只显示有限预览;复制和下载包含通过校验的完整结果。

两份文档只在浏览器内存中处理,不上传、不保存。

深模式递归合并对象;浅模式合并根字段,但同名子对象整体取优先侧。同名数组仍使用数组策略。null 是值,不表示删除。

拼接保留所有元素,固定左侧在前。按键保留左侧顺序,再追加右侧独有 ID;匹配记录在深模式递归合并,浅模式整体选择。

结果已过期,复制和下载已禁用。

配置文件叠加时,JSON 合并最容易出错的不是语法,而是一个子对象究竟该整体替换,还是保留双方的独有字段。工作台把这两种选择分开,并显示真正发生取舍的位置,方便对照源内容。

JSON 对象合并适合调整环境配置;包含记录列表时,还要单独考虑 JSON 数组合并的身份与顺序。本站不会把某一种递归习惯当作通用标准,也不会猜测数组应该去重或按下标对齐。

为什么使用 JSON 合并

看清子树替换的影响

JSON 合并会在实际选择整值的位置记录冲突。浅模式整体替换子对象时只记一处容器冲突;递归模式只记录内部不一致的值。单侧独有字段与相等值不计冲突。

两棵嵌套配置树分别展示整体替换分支与递归保留双方叶节点的结果。

保留匹配记录的来源

JSON 合并按键匹配时会精确比较数字身份,不让相邻大整数落到同一条记录。结果路径与左右源路径分别保留,即使同一 ID 在两份数组中的下标不同,也能找到正确原值。

相同颜色的身份标记连接不同输入位置的记录,结果保留左侧顺序并追加新记录。

先明确规则再查看结果

01

区分对象深度与数组策略

浅模式合并根对象字段,同名子对象整体取优先侧;但同名数组仍按当前策略处理。JSON 深度合并会递归进入对象,而不是自动替你决定数组该替换还是拼接。

02

检查标识字段的条件

按键只接受非空的直属字段名,不是路径表达式。每个配对数组内的 ID 必须唯一;同一数组中的 1 与 1.0 会被视为重复。缺失或重复不会跳过记录,而是使整次失败。

03

核对源路径后再写回

Ctrl/Cmd+Enter 可执行合并。按键匹配时先对照两侧源位置,再导出完整结果。继续合并第三份文档时,预览结果写入左侧并应用;撤销会同时恢复两侧输入、参数与输出。

控制覆盖位置和数组顺序

两种对象深度

深模式在配对对象内逐层保留双方独有字段。浅模式只做根字段并集,冲突子对象整体选择。浅模式下数组策略仍有效,这是本站明确约定的行为。

三种数组处理

替换选择优先侧整个数组;拼接固定左侧后接右侧,不去重;按键保持左侧记录顺序,右侧独有身份按原序追加。改变优先级不会反转拼接或按键结果的顺序。

精确数字与字面键

数字不经过浮点解析,身份比较使用精确数学值,巨大指数也不会展开成大量零。输出保留所选数字的原始写法;数字样式、空名称及 __proto__ 对象键都按源顺序安全处理。

可追溯的冲突记录

JSON 合并冲突同时显示结果地址与左右独立地址,并提供有明确上限的值预览。数组整体替换只产生一个容器决策,不伪装成逐元素合并;最终完整文档和冲突摘要分开处理。

明确的规则与限制

自定义合并,不是补丁格式
null 始终是普通值,不删除字段。对象、数组或标量都可以作为根;异型值按优先侧整体选择。不生成或执行 RFC 7396 Merge Patch、RFC 6902 JSON Patch,也不把冲突包装成数组。
严格解析和输出预算
每份输入及格式化输出上限为 500,000 字符、50,000 节点、深度 100,数字词元最多 1,000 字符。不接受注释、尾逗号、BOM 和重复键。合并后的文档重新校验,超限不会提供部分成功下载。
按键拒绝歧义身份
ID 键必须是非空的直属名称。仅验证真正配对进入合并的数组,包括一侧为空的数组对;单侧独有数组直接保留。被检查的每项必须是对象,ID 必须为唯一字符串或数字,缺失、null 或重复均失败。
相等与冲突有确定含义
对象键序不影响相等,数组顺序会影响相等。1、1.0、1e0 等值,-0 与 0 等值,字符串与数字不同。相等原子值保留优先侧写法。浅模式按键匹配的记录整体选择,深模式才合并记录字段。
处理预算与未支持入口
最多接受 5,000 处冲突;累计访问路径与保存的值预览各限 2,000,000 字符,没有冲突的路径也计入。不支持按下标合并、数组去重、嵌套 ID 表达式、文件导入、远程 URL、自动排序或逐冲突编辑,每次只处理两份粘贴文档。

JSON 合并常见问题

嵌套的两个 JSON 对象怎样合并?

选择深模式后,JSON 合并会递归组合双方对象的字段。浅模式只组合根字段,重名子对象整体取优先侧,因此落败子对象里的独有字段可能消失。数组仍独立使用当前数组策略。

数组合并时该选哪种处理方式?

要整组覆盖时选替换;要保留所有元素时选拼接;记录具有唯一 ID 时可按键匹配。按键不是按下标,也不按完整值去重。无效或重复 ID 会使整个操作失败,不会默默丢弃记录。

相同字段的值不一致时,以哪份 JSON 为准?

默认右侧优先,也可切换左侧优先。仅需要选择整值且两值不等的位置记为冲突;单侧字段仍保留。优先级不会改变拼接方向或按键结果的稳定左侧顺序。

合并过程中会把输入内容传到服务器吗?

不会。引擎在浏览器内存中执行,只有点击复制或下载才导出结果,输入不持久保存。刷新后回到示例;需要留存时,请在离开页面前保存通过校验的完整输出。

这个合并工具有哪些不支持的操作?

不支持批量文件、远程地址、补丁执行、逐冲突编辑或按下标数组合并。要继续叠加第三份内容,可先预览结果写入左侧并应用,再修改右侧输入重新执行。最近一次应用可以撤销。

遇到了意外的合并结果?

检查下一处覆盖

使用 JSON 合并示例切换到按键模式,比较两侧来源路径,再导出完整结果。