JSON 合并

把两个 JSON 对象深度合并成一个;同名字段默认后者覆盖(可切换为前者覆盖,或只提示冲突数),数组整体覆盖。

JSON A
拖拽文件到此处
也可以点击下方按钮选择本地文件
支持 .json / .txt / .csv,最大 10 MB,仅在浏览器本地解析
JSON B
拖拽文件到此处
也可以点击下方按钮选择本地文件
支持 .json / .txt / .csv,最大 10 MB,仅在浏览器本地解析
所有数据均在浏览器本地处理,不会上传服务器。

深度合并两份 JSON,按策略处理同名字段

JSON 合并是什么

JSON 合并是把两份 JSON 数据按字段合并成一份结果。JSON A 与 JSON B 中独有的字段都会保留,同名字段按照选择的合并策略处理;如果同名字段的值都是对象,深度合并会继续比较对象内部的字段。

JSON 深度合并怎么处理嵌套对象

本工具默认使用深度合并。对于嵌套对象,不会因为外层字段同名就直接用 B 整块替换 A,而是继续向下合并。例如 A 中有 server.port,B 中有 server.host,合并后两个字段都会保留;只有相同路径上的值发生冲突时,才按照当前策略处理;取消勾选深度合并后,同名字段会整块取值,不再逐层比较对象内部字段。

同名字段有哪三种处理策略

后者覆盖时,以 JSON B 的值为准;这是默认策略,适合使用 B 覆盖 A 中的默认配置。前者覆盖时,以 JSON A 的值为准,B 只补充 A 中不存在的字段。选择冲突时保留左侧值时,发生冲突的字段保留前者,同时统计冲突数量,便于先检查两份数据有哪些覆盖风险。

数组如何合并

数组采用整体覆盖,不进行按下标的元素级合并。如果 A 和 B 在同一路径都有数组,结果会根据当前的前后者策略选择其中一个数组,而不会把两个数组的元素直接拼接或逐项合并。这样可以避免有序列表在合并过程中产生不可预期的组合结果。

什么情况算冲突

当 JSON A 与 JSON B 在相同字段路径上都存在值,并且值不相同、需要根据合并策略决定最终值时,该字段才会进入冲突统计;值完全相同的字段不算冲突。嵌套对象内部的同名字段也会按照实际路径分别处理。合并完成后可以查看冲突字段数量,再检查关键配置是否符合预期。

适合哪些 JSON 合并场景

JSON Merge 适合合并默认配置与环境配置、不同环境的配置文件、接口默认值与用户设置,以及分批维护的 JSON 数据。对于需要先确认具体改动的位置,可以先使用 JSON Diff 查看字段新增、删除和修改,再进行合并。

怎么合并本地 JSON 文件

切换到上传文件页签,将第一份文件放入 JSON A,将第二份文件放入 JSON B,也可以直接拖入本地 JSON 文件。文件在浏览器中读取和处理,单文件上限为 10 MB;两侧数据载入后即可进行合并,不需要把文件内容上传到服务器。交换按钮可以调换 A、B 的顺序,因为前后顺序会影响覆盖结果。

合并后怎么检查结果

合并完成后,先查看冲突字段数量,再检查重要字段的最终值。如果使用后者覆盖,应重点确认 JSON B 中的值是否正确;使用前者覆盖时,则检查 A 中的原值是否需要保留。需要保存结果时,可以直接复制或下载生成的 JSON。结果采用 2 个空格缩进,便于阅读和继续进行版本管理。

JSON 合并时同名字段怎么处理?

JSON Merge 默认采用深度合并:独有字段保留,嵌套对象继续逐层合并,同名字段默认由 JSON B 覆盖。工具也支持切换为 JSON A 优先,或冲突时保留前者并统计冲突数量。

数组采用整体值处理,不进行按下标逐项合并;合并顺序为 A 在前、B 在后,因此交换两侧输入可能改变冲突字段的最终值。

  • 两份 JSON 深度合并,独有字段保留,嵌套对象逐层合并,该开关可关闭
  • 同名字段支持后者覆盖、前者覆盖、冲突保留前者并统计冲突数三种策略
  • 数组按整体值处理,不按下标逐项合并或自动拼接
  • 合并后统计冲突字段数量,方便检查覆盖风险
  • 支持文本和本地 JSON 文件,单文件上限 10 MB
  • 浏览器本地处理,JSON 内容不会上传到服务器
合并前需要确认两份 JSON 改了哪些字段,可以先使用 JSON Diff;如果需要把合并后的 JSON 转成表格,再使用 JSON → CSV。
评论 0
暂无评论,快来发表第一条评论吧
avatar
评论内容不能为空
0/255