json - programacion - jq: no se puede indexar una matriz con una cadena
ejercicios resueltos de matlab programacion pdf (1)
Debería ser:
jq ''.[].aux[].def'' file.json
.[] itera sobre la matriz externa, .aux[] luego itera sobre la matriz aux de cada nodo y .def imprime su propiedad .def .
Esto dará como resultado:
"I want this"
Si desea deshacerse de las comillas dobles, pase -r ( --raw ) a jq :
jq -r ''.[].aux[].def'' file.json
Salida:
I want this
Tengo lo siguiente en un archivo (al que llamaré "myfile"):
[{
"id": 123,
"name": "John",
"aux": [{
"abc": "random",
"def": "I want this"
}],
"blah": 23.11
}]
Puedo analizarlo sin el [ y ] siguiente manera:
$ cat myfile | jq -r ''.aux[] | .def''
I want this
$
pero con el [ y ] obtengo:
$ cat myfile | jq -r ''.aux[] | .def''
jq: error: Cannot index array with string
¿Cómo puedo lidiar con [ y ] usando jq? (Estoy seguro de que podría analizarlos con una herramienta diferente, pero quiero aprender el uso correcto de jq.