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

Linux Mint环境下使用jq更新JSON多字段仅单个生效如何解决

问题修复方案

问题根因

  • 两次jq命令都基于初始的report.empty.json做修改,第二次执行时直接覆盖了第一次生成的report.json,所以只有最后一次的project字段修改生效
  • 用--arg传递的参数默认是字符串类型,total需要整数类型,得用--argjson传参才能保证字段类型正确

修复后的脚本

#!/bin/bash

readonly PROJECT_KEY=MY_PROJECT
readonly PAGE_SIZE=500

# 单次jq操作同时更新两个字段,避免多次写入覆盖问题
jq --argjson totalArg "${PAGE_SIZE}" \
   --arg projectKey "${PROJECT_KEY}" \
   '.total = $totalArg | .project = $projectKey' \
   report.empty.json > report.json

echo "Done"

说明

  • 单次jq调用中用|连接多个赋值操作,同时完成两个字段的修改,不需要多次操作文件
  • --argjson会将传入的参数作为JSON数值类型处理,保证total字段是整数而非字符串
  • 最终生成的report.json完全符合预期格式

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.26 16:36:04