Introducción
jq
es una herramienta de línea de comandos que le permite manipular, filtrar y formatear datos JSON. Es especialmente útil cuando se trabaja con API que devuelven datos en formato JSON. En este tutorial, aprenderemos cómo instalar y usar jq
en Linux, MacOS y Windows.
Instalando jq
linux
En Linux, jq se puede instalar a través del administrador de paquetes de su sistema. Por ejemplo, en Ubuntu puedes usar:
sudo apt install jq
Mac OS
En MacOS, jq se puede instalar a través de Homebrew. Si aún no tiene Homebrew, puede instalarlo con:
/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"
Después de instalar Homebrew, puede instalar jq con brew install jq
.
ventanas
En Windows, jq se puede instalar a través de Chocolatey, un administrador de paquetes para Windows. Si aún no tiene Chocolatey, puede instalarlo siguiendo las instrucciones proporcionadas en el sitio web oficial de Chocolatey. Después de instalar Chocolatey, puede instalar jq con:
choco install jq
Uso básico de jq
Después de instalar jq, puede comenzar a usarlo para manipular datos JSON. jq toma una entrada JSON y un filtro jq, y produce una salida JSON.
Aquí hay un ejemplo del uso de jq:
echo '{"nome": "Mario", "cognome": "Rossi", "eta": 30}' | jq '.'
Este comando imprime el JSON en un formato legible. el .
en jq denota la entrada JSON completa.
Aquí hay otro ejemplo:
echo '{"nome": "Mario", "cognome": "Rossi", "eta": 30}' | jq '.nome'
Este comando imprime el valor del campo "nombre" del JSON.
Filtros más complejos con jq
jq admite filtros mucho más complejos. Aquí hay unos ejemplos:
.[]
: este filtro selecciona todos los elementos de una matriz..campo[]
: este filtro selecciona todos los elementos del campo "campo", asumiendo que es una matriz.map(.campo)
: este filtro aplica el filtro.campo
a todos los elementos de una matriz.select(.campo == "valore")
: Este filtro selecciona todos los objetos que tienen "value" como el valor del campo "field".
Aquí hay un ejemplo del uso de estos filtros:
echo '[{"nome": "Mario", "cognome": "Rossi", "eta": 30}, {"nome": "Luigi", "cognome": "Verdi", "eta": 35}]' | jq 'map(.nome)'
Este comando imprime una matriz con los nombres de todas las personas en la matriz de entrada.
Conclusión
jq es una herramienta muy poderosa para manipular datos JSON desde la línea de comandos. Le permite filtrar, transformar y formatear datos JSON de una manera simple e intuitiva. Esperamos que este tutorial lo haya ayudado a comenzar con jq. ¡Buen trabajo!