Wie filtere ich ein Array von Objekten nach Element-Eigenschaftswerten mit jq?

Ich mag es, JSON-Dateien mit @ zu filte jq:

jq . some.json

Gab den JSON mit einem Array von Objekten:

{
  "theList": [
    {
      "id": 1,
      "name": "Horst"
    },
    {
      "id": 2,
      "name": "Fritz"
    },
    {
      "id": 3,
      "name": "Walter"
    },
    {
      "id": 4,
      "name": "Gerhart"
    },
    {
      "id": 5,
      "name": "Harmut"
    }
  ]
}

Ich möchte diese Liste filtern, um nur die Elemente mit der ID mit den Werten 2 und 4 anzuzeigen. Die erwartete Ausgabe lautet also:

{
  "id": 2,
  "name": "Fritz"
},
{
  "id": 4,
  "name": "Gerhart"
}

Wie filtere ich den json mit jq? Ich habe mit Auswahl und Karte herumgespielt, aber keine davon zum Arbeiten gebracht,

$ jq '.theList[] | select(.id == 2) or select(.id == 4)' array.json
true

Antworten auf die Frage(8)

Ihre Antwort auf die Frage