Estoy tratando de usar jq parser en mis scripts de bash y estoy confundido acerca de cómo funciona, ¿alguien podría explicar qué estoy haciendo mal?
Aquí está el archivo original del servicio externo y necesito obtenerlo value
:
root@test ~ # cat test.json
{"sensors":[{"id":34585,"value":-3.06,"time":1457031003}]}
Intentando enviarlo a jq
:
root@test ~ # cat narod.json | jq
{
"sensors": [
{
"id": 34585,
"value": -3.06,
"time": 1457031003
}
]
}
Tratando de obtener sensors
:
root@test ~ # cat narod.json | jq '.sensors'
[
{
"id": 34585,
"value": -3.06,
"time": 1457031003
}
]
Intentando llegar value
desde sensors
:
root@test ~ # cat narod.json | jq '.sensors.value'
jq: error (at <stdin>:0): Cannot index array with string "value"
.sensors
en su entrada JSON hay una matriz , no un dict. No tiene índices como .value, solo sus elementos internos. Por lo tanto, debe decirle a jq que aplique el índice a cada elemento de la matriz usando[]
jq sensors[].value
No intente en mi computadora, así que no puedo probar ni publicar una respuesta completa, pero lo haré más tarde