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

如何使用jq统计JSON中嵌套数字键数组元素的总数量?

使用jq统计指定JSON结构的数组元素总数

示例JSON结构

{   
   "main":[   
      {   
            "0":[ {"0":"..."},{"1":"..."},{"2":"..."},{"3":"..."} ]
      },
      {   
            "1":[ {"0":"..."},{"1":"..."},{"2":"..."} ]
      },
      {   
            "2":[ {"0":"..."},{"1":"..."},{"2":"..."},{"3":"..."},{"4":"..."} ]
      }
    ]
}

实现方法

完全可以用jq实现需求,以下是不同场景的命令:

1. 单独输出每个数字键对应的元素数量

执行命令:

.main[] | to_entries[] | "\(.key): \(.value | length)"

输出结果:

"0: 4"
"1: 3"
"2: 5"

2. 直接输出总元素数量

执行命令:

[.main[] | to_entries[] | .value | length] | add

输出结果:

12

3. 同时输出每个键的计数和总数量(结构化结果)

执行命令:

(
  .main[] | to_entries[] | {key: .key, count: .value | length}
) as $items
| {items: $items, total: ($items | map(.count) | add)}

输出结果:

{
  "items": [
    {
      "key": "0",
      "count": 4
    },
    {
      "key": "1",
      "count": 3
    },
    {
      "key": "2",
      "count": 5
    }
  ],
  "total": 12
}

命令说明

  • .main[]:遍历main数组中的每个子对象
  • to_entries[]:将每个子对象转换为键值对结构(格式为{key: "键名", value: "对应值"})
  • .value | length:获取每个键对应数组的元素个数
  • [... ] | add:将所有数组长度存入数组后,求和得到总数量

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.17 22:40:47