iocalhost.nl // no place like ::1
references Text Processing jq

jq

JSON bevragen en transformeren vanaf de command line.

Basis

jq '.' bestand.json          pretty-print
jq '.key' bestand.json       waarde van een veld
jq '.a.b.c'                  genest veld
jq '.items[0]'               eerste array-element
jq '.items[]'                alle elementen (stream)
curl ... | jq '.data'        via pipe

Filteren & selecteren

jq '.[] | select(.age > 30)'              filter op waarde
jq '.[] | select(.name == "iocalhost")'
jq '.items[] | .name'                     veld uit elk element
jq '.items | length'                      aantal
jq 'keys'                                 sleutels van een object
jq '.. | .id? // empty'                   recursief alle id's

Transformeren

jq '{ naam: .name, jaar: .year }'         nieuw object bouwen
jq '.items | map(.price)'                 array van prijzen
jq '[.items[].price] | add'               som
jq '.items | sort_by(.price)'             sorteren
jq -r '.name'                             ruwe string (geen quotes)
jq -c '.'                                 compact (één regel)

Handig

jq 'to_entries[] | "\(.key)=\(.value)"'   object key=value regels
jq -s 'add' a.json b.json                 arrays samenvoegen (slurp)
jq --arg v "$VAR" '.field = $v'           shell-variabele injecteren