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

使用jq合并多个JSON对象并新增顶层字段的实现方案咨询

jq合并脚本调整方案

1. 修改program.jq脚本

把原有内容替换为:

input as $owners | input as $food | {$owners, $food, animals: [inputs]}

2. 调整执行命令

调整文件传入顺序,把food.json放在第二个参数位,同时过滤排除文件的时候增加food.json的规则:

jq -n -f program.jq owners.json food.json $(ls *.json | grep -v -E 'owners.json|food.json')

实现逻辑

jq的input函数会按照命令行传入文件的顺序依次读取输入:

  • 第一个传入的owners.json会被第一个input读取,赋值给$owners变量作为顶层owners字段值
  • 第二个传入的food.json会被第二个input读取,赋值给$food变量作为顶层food字段值
  • 剩余传入的所有动物类JSON文件,会被inputs批量读取后存入animals数组

如果你的shell支持extglob(bash默认可执行shopt -s extglob开启),也可以用更安全的方式避免ls命令的潜在问题:

jq -n -f program.jq owners.json food.json !(*owners|*food).json

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.30 05:36:01