首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用jq过滤json并获取整个其他值

问使用jq过滤json并获取整个其他值
EN

Stack Overflow用户
提问于 2020-09-18 14:28:37
回答 2查看 112关注 0票数 1

我正在尝试过滤下面的json对象,以获得没有“版主”或“所有者”域值的id,在bash script.The problem中使用jq是我的第三个域值是随机的,而不是预先确定的。如何对其进行过滤?

代码语言:javascript
复制
{
 "data":[
   {
      "id":1,
      "domain":"moderator"
   },
   {
      "id":2,
      "domain":"owner"
   },
   {
      "id":3,
      "domain":"34b5756175a848f7a1395e1a19e10602"
   }
 ]
}
EN

回答 2

Stack Overflow用户

发布于 2020-09-18 15:43:44

您可以通过以下方式仅获取具有不同域的数组元素:

代码语言:javascript
复制
$ jq '.data[] | select(.domain != "moderator" and .domain != "owner")' input.json
{
  "id": 3,
  "domain": "34b5756175a848f7a1395e1a19e10602"
}

如果您只需要id值,而不是整个对象,那么可以在jq过滤器的末尾添加| .id。

票数 1
EN

Stack Overflow用户

发布于 2020-09-18 15:44:47

您可以使用jq函数select

代码语言:javascript
复制
cat text.json | jq '.data[] | select((.domain != "moderator") and (.domain != "owner"))'

此外,您还可以使用length函数来获取数组的大小。

代码语言:javascript
复制
jq '.[] | length' test.json
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/63950396

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档