J'ai le suivant dans un fichier (que j'appellerai "mon fichier"):
[{
"id": 123,
"name": "John",
"aux": [{
"abc": "random",
"def": "I want this"
}],
"blah": 23.11
}]
Je peux l'analyser sans le [
et ]
comme suit:
$ cat myfile | jq -r '.aux[] | .def'
I want this
$
mais avec le [
et ]
Je reçois:
$ cat myfile | jq -r '.aux[] | .def'
jq: error: Cannot index array with string
Comment puis-je traiter avec le [
et ]
en utilisant jq? (Je suis sûr que je pourrais les analyser avec un outil différent, mais je veux apprendre comment utiliser correctement jq.
CA devrait etre:
jq '.[].aux[].def' file.json
.[]
itère sur le tableau externe, .aux[]
_ puis itère sur le tableau aux
de chaque noeud et .def
imprime leur .def
propriété.
Cela produira:
"I want this"
Si vous voulez vous débarrasser des guillemets doubles, passez -r
(--raw
) à jq
:
jq -r '.[].aux[].def' file.json
Sortie:
I want this