用jq过滤嵌套数组

时间:2019-11-02 22:25:53

标签: json select jq

我有以下JSON:

{
  "x": [
    { "a": 1 },
    { "a": 2 },
    { "b": 1 },
    { "b": 2 }
  ]
}

我想对其进行过滤以便返回:

{
  "x": [
    { "b": 1 },
    { "b": 2 }
  ]
}

我尝试过

".x[] | select(.b)"

但是,这只给了我b的对象列表:

{ "b": 1 }
{ "b": 2 }

我也想要原始的周围物体。 (完整的JSON更大,嵌套更深。)

1 个答案:

答案 0 :(得分:2)

不幸的是,您的一般要求不清楚,但是希望以下针对示例所建议的问题类别的解决方案将为您提供指导:

.x |= map(select(has("b")))