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

jq技术问题:基于子数组内容选择父键及提取唯一值

针对file.json的jq解决方案

问题1:获取所有子数组的唯一值列表(纯jq原生实现)

你当前用jq -r '.x[][]' file.json | sort | uniq依赖外部工具,纯jq原生可以用内置函数一步完成:

jq -r '.x | flatten | unique[]' file.json

说明:

  • .x定位到目标对象
  • flatten把所有嵌套子数组展开为一维数组
  • unique自动完成去重并返回有序结果
  • []将数组元素逐个输出,配合-r得到每行一个值的纯文本格式

问题2:获取包含"3"的子数组对应的父键

需要先将键值对转换为结构化条目,筛选后提取键即可:

jq -r '.x | to_entries[] | select(.value | index("3") != null) | .key' file.json

也可以用更直观的判断逻辑:

jq -r '.x | to_entries[] | select(.value[] == "3") | .key' file.json

说明:

  • to_entries把.x下的键值对转为{"key": "父键名", "value": ["子数组元素"]}的格式
  • select语句筛选出子数组包含"3"的条目
  • .key提取对应的父键名,配合-r输出纯文本

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.10 20:24:55