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.