2017-02-11 4 views
0

Ich habe eine JSON-Datei wie diese filtern:Wie ein Array von Objekten auf den Werten der Zeichenfolge in einem inneren Array mit jq

[{ "path": "p1" "title": "t1" "tags": ["tags1"] }, { "path": "p2" "title": "t2" "tags": ["tags1", "tag2"] }, { "path": "p3" "title": "t3" "tags": ["tags2"] } ] und ich möchte den Wert filtern (jq verwenden) auf Tags und erhalte den Titel als Ausgabe.

Zum Beispiel würde ich alle Werte filtern, die tags1 (und der Ausgang wäre t1 und t2) haben.

Wie kann ich das tun?

Vielen Dank für Ihre Antworten.

P.S. : Ich habe diese Frage gefunden: How to filter an array of objects based on values in an inner array with jq?, die fast die Antwort haben, aber ich war nicht in der Lage, es anzupassen.

Antwort

0

Nach dem JSON Eingang Rektifizieren, erzeugen die folgenden Filter die Ausgänge unten gezeigt:

.[] | select(.tags | index("tags1")) | .title 

Output:

"t1" 
"t2" 
Verwandte Themen