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

在Jenkins Execute Shell中提取JSON变量中的ID值

在Jenkins Execute Shell中提取JSON里的ID值

嘿,在Jenkins的Execute Shell里处理JSON提取ID,用jq工具绝对是最顺手的方案!下面给你两种实用的实现方式,按需选就行:

方法一:把所有ID提取到数组中

先假设你的JSON数据已经存在变量COMPONENTS_JSON里了(如果还没定义,先按下面的方式赋值):

COMPONENTS_JSON='[ { "id": "1636ea48-28b7-783a-48dd-5e041f10d9e6", "name": "Test_Component1", "desiredVersions": [], "children": false }, { "id": "1636f939-136f-4609-ab93-238b1af193fe", "name": "Test_Component2", "desiredVersions": [], "children": false } ]'

然后用jq提取所有ID并存入数组:

# 提取所有ID到数组(-r参数是输出原始字符串,不带引号)
IDS=($(echo "$COMPONENTS_JSON" | jq -r '.[] | .id'))

# 之后就能通过数组索引访问两个ID啦
echo "第一个组件ID: ${IDS[0]}"
echo "第二个组件ID: ${IDS[1]}"

方法二:分别提取到单独变量

如果只需要单独拿两个ID,直接指定索引提取更直接:

# 提取第一个ID
ID1=$(echo "$COMPONENTS_JSON" | jq -r '.[0].id')
# 提取第二个ID
ID2=$(echo "$COMPONENTS_JSON" | jq -r '.[1].id')

# 验证一下结果
echo "Test_Component1的ID: $ID1"
echo "Test_Component2的ID: $ID2"

注意事项

要确保你的Jenkins构建节点上已经安装了jq工具,如果没装的话,可以在Execute Shell开头加一行安装命令:

  • Debian/Ubuntu系节点:apt-get update && apt-get install -y jq
  • RHEL/CentOS系节点:yum install -y jq

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.28 06:34:21