使用 jq 获取数组中的键等于特定值的数组?

1 jq

我一直在练习 jq play 来尝试获取列表中的所有数组,其中 website 是 ==“google”,并从中创建另一个 json 列表。

https://jqplay.org/s/DKNC2mhOLq

jq:错误(位于:18):无法使用字符串“网站”退出状态 5 索引数组

{
    "items": [
    {
     "name":"name1",
     "id":"1",
     "website":"google"
    },
    {
     "name":"name1",
     "id":"1",
     "website":"google"
    },
    {
     "name":"name1",
     "id":"2",
     "website":"jingle"
    }
    ]
Run Code Online (Sandbox Code Playgroud)

期望的输出:

   [
    {
     "name":"name1",
     "id":"1",
     "website":"google"
     },
    {
     "name":"name1",
     "id":"1",
     "website":"google"
     }
   ]
Run Code Online (Sandbox Code Playgroud)

如何循环遍历列表中的数组并查找特定键的特定值?感谢您提供的任何帮助或想法。我是 JSON 和 jq 的初学者。

pmf*_*pmf 5

将 括起来selectmap因为您希望将过滤器单独应用于每个数组项,同时保留周围的数组结构。

jq '.items | map(select(.website == "google"))'
Run Code Online (Sandbox Code Playgroud)
[
  {
    "name": "name1",
    "id": "1",
    "website": "google"
  },
  {
    "name": "name1",
    "id": "1",
    "website": "google"
  }
]
Run Code Online (Sandbox Code Playgroud)

演示