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

如何使用jq提取JSON中uri字段不以/themes开头的字典

问题原因

原命令的筛选逻辑存在路径写法错误:

  • 当你用.[]遍历拿到数组内的每个字典条目后,当前迭代的上下文就是单个字典对象本身,不需要再加[]做二次迭代
  • 原写法里的.[].uri会在单个字典内再次递归遍历所有子属性查找uri字段,导致判断逻辑和当前遍历的条目错位,筛选条件完全失效,最终输出所有内容
  • 额外加的-r(原始输出)参数不需要保留,该参数会剥离JSON结构的格式标记,不适合输出结构化的JSON对象结果
正确命令

如果你的输入是标准JSON数组(即示例中的两个字典外层包裹[]的结构),使用如下命令:

jq '.[] | select(.uri | startswith("/themes") | not)' 输入文件路径

如果你的输入是JSON Lines格式(多个字典对象逐行存储,外层无包裹数组),去掉开头的.[]即可:

jq 'select(.uri | startswith("/themes") | not)' 输入文件路径
运行效果

使用提供的示例输入执行上述命令,将仅输出符合要求的条目,和预期结果完全一致:

{
  "version": 0,
  "permissionMask": 2,
  "creationDate": "2022-06-09T14:42:43",
  "updateDate": "2021-11-17T06:48:48",
  "label": "workflow_icons_sprite@05x.png",
  "uri": "/internal/default/images/workflow_icons_sprite@05x.png",
  "resourceType": "file"
}

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.29 18:57:18