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

使用JQ为已有JSON对象添加字段失败:未追加却生成新对象

问题原因及解决方法

错误根源

你的脚本里$data | jq ...这行是直接把变量里的JSON字符串当作命令执行了,而不是把它作为jq的输入。shell会解析{为命令,所以抛出{: command not found的错误。此时jq没有接收到原始的JSON数据,只会根据. + {objects_count: $oc}的逻辑,在空输入下生成仅包含objects_count的新对象。

修正方案

需要用echo把变量中的JSON内容输出,再通过管道传给jq,修改后的代码如下:

echo $data
    
data=$(echo "$data" | jq --argjson oc "$objects_count" '. + {objects_count: $oc}' )

echo $data

补充说明

  • 给变量加双引号"$data"可以避免JSON中的空格等特殊字符被shell拆分,保证完整传递给jq。
  • --argjson用于传递数值类型的参数,确保objects_count是数字而不是字符串,符合你期望的结果格式。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.20 13:39:37