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

命令行下如何向JSON对象添加键值对且避免模板与参数重复?

用jq自动添加--arg传入的键值对到JSON对象

之前的写法需要手动在JSON模板里对应每个--arg参数添加键值对,重复操作冗余。可以利用jq内置的$ARGS.named变量实现模板与传入参数解耦,无需手动添加键值对:

核心命令示例

$ jq -c -n '{u: "u"} + $ARGS.named' --arg a '"1"' --arg b '"2"'

执行后输出:

{"u":"u","a":"\"1\"","b":"\"2\""}

关键说明

  • -n:指定jq从空输入启动,专注处理定义的模板和参数
  • {u: "u"}:你的基础JSON模板,完全独立于后续传入的参数
  • + $ARGS.named:将基础JSON对象与--arg传入的所有键值对自动合并,所有通过--arg传递的参数都会被转换成键值对加入最终JSON
  • 后续可随意添加--arg key value参数,无需修改基础模板部分

扩展示例(新增参数无需改模板)

$ jq -c -n '{u: "u"} + $ARGS.named' --arg a '"1"' --arg b '"2"' --arg c "3"

输出结果:

{"u":"u","a":"\"1\"","b":"\"2\"","c":"3"}

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.17 17:10:41