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

如何用jq实现嵌套JSON的外层字段与内层数据同行输出?

解决嵌套JSON的jq提取问题

示例输入JSON

假设你的JSON结构如下:

{
  "data": [
    {
      "startTime": "2024-01-01",
      "data": [
        {"one": "a", "two": "b"},
        {"one": "c", "two": "d"}
      ]
    },
    {
      "startTime": "2024-01-02",
      "data": [
        {"one": "e", "two": "f"}
      ]
    }
  ]
}

正确的jq命令

要得到每行包含startTime、one、two的结果,执行以下命令:

jq -r '.data[] | .startTime as $t | .data[] | [$t, .one, .two] | @tsv'

命令逻辑说明

  • .data[]:遍历外层data数组的每个对象
  • .startTime as $t:将当前外层对象的startTime存入变量$t,确保内层遍历时不会丢失这个值
  • .data[]:遍历当前外层对象内的内层data数组元素
  • [$t, .one, .two]:把三个目标值组合成数组
  • @tsv:将数组转为制表符分隔的文本,输出每行三个值(如果需要逗号分隔,可替换为join(", "))

输出结果

执行后会得到3行结果:

2024-01-01	a	b
2024-01-01	c	d
2024-01-02	e	f

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.15 05:24:51