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.