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

jq迭代数组元素时重复引用另一对象值的实现方法

问题

现有JSON输入:

{
  "level1": {
    "id": "a"
  },
  "level2": [
    {
      "id": "1"
    },
    {
      "id": "2"
    }
  ]
}
{
  "level1": {
    "id": "b"
  },
  "level2": [
    {
      "id": "3"
    },
    {
      "id": "4"
    }
  ]
}

期望输出:

a  1 
a  2 
b  3 
b  4 

尝试命令:

jq -r '[ .level1.id, (.level2[] |.id ) ]|@tsv'

需要实现.level1.id对应.level2数组中的每个对象重复输出,但未找到正确思路。

解决方案

使用以下jq命令即可实现需求:

jq -r '.level2[] | [.level1.id, .id] | @tsv'

或者用变量绑定让逻辑更清晰:

jq -r 'let parentId = .level1.id; .level2[] | [parentId, .id] | @tsv'

这两个命令会遍历每个顶级对象的.level2数组,为数组内每个元素生成一行,每行包含对应的.level1.id和当前数组元素的.id,输出格式与预期一致。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.01 21:05:01