Analizar JSON en Bash
-
Utilice
jq
(herramienta de procesamiento JSON de línea de comandos ligera y flexible) para analizar JSON en Bash -
Use
grep
para analizar JSON en Bash -
Use
python3
para analizar JSON
Aprenderemos a analizar los datos JSON en bash usando diferentes técnicas.
Usaremos un servidor JSON falso para los ejemplos.
Servidor JSON falso - https://jsonplaceholder.typicode.com/posts
Utilice jq
(herramienta de procesamiento JSON de línea de comandos ligera y flexible) para analizar JSON en Bash
jq
es una pequeña solución multiplataforma para administrar datos JSON de una manera más corta, simple y sin esfuerzo.
Puede descargar jq
desde aquí.
Obtenga datos JSON formateados más bonitos usando jq
El comando jq .
embellece los datos json.
curl "https://jsonplaceholder.typicode.com/posts" | jq .
Producción :
[
{
"userId": 1,
"id": 1,
"title": "delectus aut autem",
"completed": false
},
{
"userId": 1,
"id": 2,
"title": "quis ut nam facilis et officia qui",
"completed": false
},
{
"userId": 1,
"id": 3,
"title": "fugiat veniam minus",
"completed": false
}
... // remaining list of data
]
Obtener valores de campos específicos de JSON
Podemos obtener valores de cualquier campo específico del array de datos JSON usando jq.[].field_name
.
curl "https://jsonplaceholder.typicode.com/posts" | jq '.[].id'
Producción :
1
2
3
...
Obtenga el título del primer elemento de JSON
curl "https://jsonplaceholder.typicode.com/posts" | jq '.[0].title'
Producción :
"delectus aut autem"
Use grep
para analizar JSON en Bash
El comando grep
también se puede usar para analizar datos JSON.
Ejemplo de archivo JSON:
[
{
"id": 1,
"name": "Andres Gustov",
"email": "andddy7@gmail.com"
},
{
"id": 2,
"name": "Anthony Marklov",
"email": "antman33@gmail.com"
}
]
Guión de ejemplo:
grep -o '"email": "[^"]*' examplejsonfile.json | grep -o '[^"]*$'
Usamos la opción -o
para seleccionar solo líneas que coincidan con el patrón dado. Luego, especificamos el patrón '"email": "[^"]*'
, lo que significa que queremos todos los valores de la clave email
. A continuación, pasamos el archivo JSON para buscar el patrón. Finalmente, canalizamos el resultado con otro comando grep -o
para eliminar todo excepto el valor.
Producción :
andddy7@gmail.com
antman33@gmail.com
Use python3
para analizar JSON
También podemos usar el módulo json
de python para manejar operaciones JSON.
curl -s 'https://jsonplaceholder.typicode.com/posts' | \
python3 -c "import sys, json; print(json.load(sys.stdin))"
Obtener valor de campo específico
curl "https://jsonplaceholder.typicode.com/posts" | \
python3 -c "import sys, json; data=json.load(sys.stdin); print([d['id'] for d in data])"
Producción :
1
2
3
...
Obtener el título del primer elemento
curl "https://jsonplaceholder.typicode.com/posts" | \
python3 -c "import sys, json; print(json.load(sys.stdin)[0]['title'])"
Producción :
"delectus aut autem"