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

使用jq获取JSON数组顶级id元素值失败,求解决方法

解决jq获取数组中对象id的问题

报错原因

你的JSON数据是数组结构(外层由[]包裹),直接使用.id是尝试对数组使用字符串索引,这不符合jq的语法规则,因此抛出Cannot index array with string "id"错误。而你获取authenticatorName时用.[]遍历数组内的每个对象,这个逻辑是正确的。

正确命令

根据你的需求选择对应的命令:

  • 获取数组中所有对象的id(输出每个id,每行一个):
    FACTOR_ID=$(echo "$RESPONSE2" | jq -r '.[] | .id')
    
  • 仅获取数组中第一个对象的id(如果数组只有一个元素):
    FACTOR_ID=$(echo "$RESPONSE2" | jq -r '.[0].id')
    

示例验证

假设你的JSON数据如下:

[
{
"id": "factor_abc123",
"profile": {
"authenticatorName": "GoogleAuth"
}
},
{
"id": "factor_def456",
"profile": {
"authenticatorName": "MicrosoftAuth"
}
}
]

  • 执行第一条命令会输出:
    factor_abc123
    factor_def456
    
  • 执行第二条命令会输出:
    factor_abc123
    

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.28 19:52:08