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

使用jq按指定key值提取JSON的description字段并转为Bash变量

使用jq筛选JSON并转换为Bash变量

1. jq动态匹配并提取目标字段

假设你的JSON数据存放在data.json文件中,或通过管道传入,用以下命令动态筛选short_description精确等于"01. Project validation"的对象,提取其description值:

jq -r '.change_tasks[] | select(.short_description == "01. Project validation") | .description' data.json

命令拆解:

  • .change_tasks[]:遍历change_tasks数组的每一个元素
  • select(.short_description == "01. Project validation"):精准筛选符合条件的对象
  • .description:提取目标对象的description字段
  • -r:输出原始字符串(去除JSON格式的引号)

2. 将逗号分隔值转为Bash数组变量

把jq的输出结果转为Bash数组,方便后续和其他值列表校验:

# 提取description并分割为数组
IFS=',' read -ra VALIDATION_LIST <<< "$(jq -r '.change_tasks[] | select(.short_description == "01. Project validation") | .description' data.json)"

# 可选:验证数组内容
for item in "${VALIDATION_LIST[@]}"; do
    echo "待校验项:$item"
done

关键说明:

  • IFS=',':设置内部字段分隔符为逗号
  • read -ra VALIDATION_LIST:将逗号分隔的字符串拆分为数组元素
  • 后续可直接通过"${VALIDATION_LIST[@]}"调用数组所有元素,与其他值列表做比对校验

提示:如果description中的值包含空格或特殊字符,该方法依然能保留元素的原始格式

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.22 05:29:57