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

如何使用bash jq遍历JSON数组并提取数组内对象的name字段值

解决方案

1. 单独提取指定索引的name字段

如果要获取数组第N个元素的name值(jq数组索引从0开始计数,第一个元素对应索引0),可以直接用以下命令,自带参数无需额外sed处理引号:

item1name=$(jq -r '.items[0].name' object.json)

如果你习惯用反引号的写法也可以:

item1name=`jq -r '.items[0].name' object.json`

这里的-r(全称--raw-output)参数会直接输出字符串原始值,不会默认包裹双引号,完全可以替代你示例里的sed去引号逻辑。

2. 按索引遍历所有元素提取name字段

如果需要循环遍历整个数组逐个处理,可以参考以下bash脚本写法:

# 先获取数组总长度
arr_len=$(jq '.items | length' object.json)

# 按索引遍历
for ((i=0; i<arr_len; i++)); do
  current_name=$(jq -r ".items[$i].name" object.json)
  # 这里写你需要的处理逻辑,比如打印或者赋值给变量
  echo "索引${i}对应的name值为:${current_name}"
done

3. 一次性提取所有name字段(不需要索引的场景)

如果你不需要区分索引,只是要拿到所有name值,直接用以下命令即可,会每行输出一个name值:

jq -r '.items[].name' object.json

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.23 18:45:04