首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >在JSON w/ jq中过滤数组,同时保留周围的结构

在JSON w/ jq中过滤数组,同时保留周围的结构
EN

Stack Overflow用户
提问于 2018-12-20 00:54:12
回答 1查看 51关注 0票数 0

JSON数据如下,我想在不改变结构的情况下丢弃"bar"="cccc“。

代码语言:javascript
复制
{
      "foofoo": {
        "barbar": [
          {
            "foo": "0000",
            "bar": "aaaa"
          },
          {
            "foo": "1111",
            "bar": "bbbb"
          },
          {
            "foo": "2222",
            "bar": "cccc"
          }
          ]
      }
}

类似这样的代码可以解决这个问题,但它会改变JSON结构。

代码语言:javascript
复制
.foofoo.barbar[] | select(.bar !="cccc")

结果如下:

代码语言:javascript
复制
{
  "foo": "0000",
  "bar": "aaaa"
}
{
  "foo": "1111",
  "bar": "bbbb"
}

需要的结果是:

代码语言:javascript
复制
{
  "foofoo": {
    "barbar": [
    {
      "foo": "0000",
      "bar": "aaaa"
    }
    {
      "foo": "1111",
      "bar": "bbbb"
    }
    ]
  }
}

谢谢!

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-12-20 01:00:22

您尝试的问题是您已经通过编写.foofoo.barbar[]扩展了.foofoo.barbar。

相反,您需要的是重置它:

代码语言:javascript
复制
.foofoo.barbar |= map(select(.bar !="cccc"))
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/53855828

复制
相关文章

相似问题

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