Es un procesador de datos JSON. Puede segmentar, filtrar, mapear y transformar el formato con la misma facilidad con la que sed, awk, grep y similares permiten manipular texto.
Supongamos un archivo .json con el siguiente contenido:
$ nano datos.json
[
{"nombre": "Ana", "edad": 25, "ciudad": "Madrid"},
{"nombre": "Luis", "edad": 30, "ciudad": "Barcelona"},
{"nombre": "Carlos", "edad": 22, "ciudad": "Valencia"}
]
$ jq '.' datos.json
$ jq '.[].nombre' datos.json
$ jq '.[] | select(.edad > 24)' datos.json
$ jq '.[] | select(.edad > 24) | .nombre' datos.json
$ jq 'map({nombre: .nombre, ciudad: .ciudad})' datos.json
$ jq 'map(.edad += 1)' datos.json