Formatear y convertir JSON al vuelo con jq

jq es una herramienta que permite formatear y/o convertir la respuesta de un JSON API a cualquier cosa que se les ocurra.

Formatear:

Cuando se tiene que verificar el resultado de una petición a un API, y el API responde con el JSON más eficiente, sin espacios o retornos de línea obtienes algo como:

$ curl localhost:8000
{"ok":true,"message":"Creado correctamente"}

Pero si usas JQ:

$ curl localhost:8000 | jq 
{
  "ok": true,
  "message": "Creado correctamente"
}

Y además de formatear para que sea más legible, también añade colores en la respuesta.

Convertir:

A veces se necesita obtener solo cierto campo de una respuesta del API, por ejemplo si quisiera solo tener el campo message de la respuesta, haría:

$ curl -s localhost:8000 | jq '.message'
"Creado correctamente"

Esto solo es una mínima parte de lo que puede hacer, también es posible hacer cálculos y muchas otras cosas.

Esto es de gran utilidad por ejemplo cuando interactúas con API de terceros para escribir un script, lo he usado cuando llamo a las API de Amazon Web Services como parte de un script de despliegue por ejemplo.