JMESPath筛选对象而非数组:GitHub GraphQL私有仓库过滤失败求助
问题1:GitHub GraphQL返回结果筛选私有仓库
正确JMESPath表达式
data.repositoryOwner.repositories.edges[?node.isPrivate == `true`].node
错误原因说明
你之前的写法问题在于筛选操作的作用对象位置错误:
- edges本身就是数组,筛选逻辑直接作用在edges数组元素上即可,直接判断每个edge下
node.isPrivate的布尔值 - 筛选完成后再提取所有符合条件的
node字段,就能直接得到你预期的私有仓库数组,完全符合你的输出要求
问题2:Go仓库事件多条件筛选
你已经验证的多条件&&拼接逻辑是正确的,针对IssuesEvent新增payload.action=='created'过滤的完整表达式如下:
[?type=='IssuesEvent' && payload.action=='created'].payload.{Title: issue.title, URL: issue.url, User: issue.user.login, Event: action}
不需要使用管道,直接在筛选条件块内用&&拼接多个判断规则即可生效。
JMESPath完全支持该场景的筛选需求,不存在设计缺陷,仅需注意筛选操作需要直接作用在数组层级,通过属性路径访问子字段作为判断条件即可。
内容的提问来源于stack exchange,提问作者xpt
相关产品推荐
相关产品推荐

