基于内部对象的值等于外部对象的值来过滤对象数组

2rs*_*2ts 3 select json jq

我有一些这样的数据:

{
  "foo": "bar",
  "stuff": [
    {
      "foo": "baz"
    },
    {
      "foo": "bar"
    }
  ]
}
Run Code Online (Sandbox Code Playgroud)

我想得到与外部对象stuff具有相同值foo的对象.所以在这种情况下我想得到:

{
  "foo": "bar"
}
Run Code Online (Sandbox Code Playgroud)

我该如何使用jq

Rom*_*est 5

jq 做法:

jq '.foo as $foo | .stuff[] | select(.foo == $foo)' file.json
Run Code Online (Sandbox Code Playgroud)