You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何使用jq合并两个JSON文件并实现同键值覆盖与新键追加?

使用jq合并JSON文件的解决方案

嘿,完全没问题!jq就是处理这类JSON合并需求的绝佳工具,实现起来简洁又精准,完美匹配你提出的“相同键用第二个文件值覆盖、新增键直接追加”的要求。

核心命令

假设你的两个JSON文件分别命名为file1.json和file2.json,执行这条命令就能完成合并:

jq -s '.[0] * .[1]' file1.json file2.json

命令细节解释

  • -s(--slurp)参数:会把多个输入的JSON文件打包成一个数组,.[0]对应第一个文件的JSON对象,.[1]对应第二个文件的JSON对象。
  • *操作符:jq里专门用来合并对象的操作符,后面的对象会覆盖前面对象的同名键,同时自动保留两个对象中所有不重复的键——刚好契合你的需求。

用你的示例验证

我们拿你给出的具体内容测试一遍:
第一个文件file1.json内容:

{ "foo": "bar", "aaa": "aaa", "count": 0 }

第二个文件file2.json内容:

{ "bbb": "bbb", "count": 1 }

执行命令后,输出结果完全符合你的预期:

{
  "foo": "bar",
  "aaa": "aaa",
  "count": 1,
  "bbb": "bbb"
}

进阶技巧:保存结果到文件

如果需要把合并后的内容直接存到新文件,加个重定向就行:

jq -s '.[0] * .[1]' file1.json file2.json > merged.json

内容的提问来源于stack exchange,提问作者Piotr Lisiowski

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.04.28 15:13:20