Usare jq parte 2

Scritto da il
🍒 Cherry Bin

jq parte 1 - jq parte 3

Se avete seguito la ciliegina su come usare jq vi può interessare a maggior ragione sapere come comportarvi se un json presenta anche degli array o oggetti innestati. Supponiamo il seguente json:

[
        "ciao",
        "come",
        "stai"
]

cioè un semplice vettore da tre elementi. Con jq possiamo stamparlo intero così:

echo '
[
        "ciao",
        "come",
        "stai"
]
' | jq

Possiamo però prelevarci a questo punto una sola cella, ad esempio la seconda:

echo '
[
        "ciao",
        "come",
        "stai"
]
' | jq ".[1]"

Se avessimo un vettore innestato, potremmo accedere in cascata concatenando l’indice tra parentesi quadre. Ad esempio:

[
        ["ciao","'$USER'"],
        "come",
        "stai"
]
' | jq ".[0][0]" 

Stamperebbe solo ciao. Al contrario possiamo stampare tutto il sotto vettore indicando un solo indice come prima. Infatti:

echo '
[
        ["ciao","'$USER'"],
        "come",
        "stai"
]
' | jq ".[0]"

Stamperebbe

[
  "ciao",
  "nomeutente"
]