Fun mit JSON Arrays dank jq

Fun mit JSON Arrays dank jq

·

1 min read

Mit jq ist es möglich, nicht nur JSON Objekte weiterzuverarbeiten, sondern auch JSON Arrays.

Nehmen wir an, wir haben folgende Datei data.json als Beispiel entnommen von json.org.

[
        {"id": "Open"},
        {"id": "OpenNew", "label": "Open New"},
        null,
        {"id": "ZoomIn", "label": "Zoom In"},
        {"id": "ZoomOut", "label": "Zoom Out"},
        {"id": "OriginalView", "label": "Original View"},
        null,
        {"id": "Quality"},
        {"id": "Pause"},
        {"id": "Mute"},
        null,
        {"id": "Find", "label": "Find..."},
        {"id": "FindAgain", "label": "Find Again"},
        {"id": "Copy"},
        {"id": "CopyAgain", "label": "Copy Again"},
        {"id": "CopySVG", "label": "Copy SVG"},
        {"id": "ViewSVG", "label": "View SVG"},
        {"id": "ViewSource", "label": "View Source"},
        {"id": "SaveAs", "label": "Save As"},
        null,
        {"id": "Help"},
        {"id": "About", "label": "About Adobe CVG Viewer..."}
]

Dann können wir diese Datei mit folgendem Befehl zum Beispiel in das JSON Lines Format überführen und gleichzeitig die null-Werte herausfiltern:

> cat data.json | jq '.[] | select(. != null)' -Mc
$ 
{"id":"Open"}
{"id":"OpenNew","label":"Open New"}
{"id":"ZoomIn","label":"Zoom In"}
{"id":"ZoomOut","label":"Zoom Out"}
{"id":"OriginalView","label":"Original View"}
{"id":"Quality"}
{"id":"Pause"}
{"id":"Mute"}
{"id":"Find","label":"Find..."}
{"id":"FindAgain","label":"Find Again"}
{"id":"Copy"}
{"id":"CopyAgain","label":"Copy Again"}
{"id":"CopySVG","label":"Copy SVG"}
{"id":"ViewSVG","label":"View SVG"}
{"id":"ViewSource","label":"View Source"}
{"id":"SaveAs","label":"Save As"}
{"id":"Help"}
{"id":"About","label":"About Adobe CVG Viewer..."}