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

如何用命令实现主JSON文件覆盖合并两个JSON文件?

使用jq命令实现JSON合并(主文件覆盖子文件)

你可以使用jq这个命令行JSON处理工具来轻松实现需求,它支持递归合并JSON对象,且后传入的文件会覆盖前一个文件的对应键值(包括嵌套结构)。

命令示例

假设你的子JSON文件名为child.json,主JSON文件名为parent.json,执行以下命令即可得到合并结果:

jq -s '.[0] * .[1]' child.json parent.json

命令解释

  • -s:将多个输入的JSON文件读取为一个数组,.[0]对应第一个文件(子JSON),.[1]对应第二个文件(主JSON)
  • *:jq的合并操作符,会递归合并两个对象,后面对象的键会覆盖前面对象的同名键,嵌套层级的键也会按此规则处理

验证结果

用你提供的示例文件测试:
child.json内容:

{
    "test": {
        "test1": true,
        "test2": {
            "test3": [1, 2, 3]
        }
    }
}

parent.json内容:

{
    "test": {
        "test2": null,
        "test3": "string"
    },
    "test2": "newValue"
}

执行命令后输出的合并结果:

{
    "test": {
        "test1": true,
        "test2": null,
        "test3": "string"
    },
    "test2": "newValue"
}

完全符合预期。

内容的提问来源于stack exchange,提问作者Владислав Пестриков

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.06 17:34:56