Ho un output JSON che contiene un elenco di oggetti archiviati in una variabile. (Potrei non esprimermi correttamente)
[
{
"item1": "value1",
"item2": "value2",
"sub items": [
{
"subitem": "subvalue"
}
]
},
{
"item1": "value1_2",
"item2": "value2_2",
"sub items_2": [
{
"subitem_2": "subvalue_2"
}
]
}
]
Ho bisogno di tutti i valori per item2 in un array per eseguire uno script bash su Ubuntu 14.04.1.
Ho trovato un sacco di modi per ottenere l'intero risultato in un array ma non solo gli elementi di cui ho bisogno
Risposta accettata:
Usando jq :
$ cat json
[
{
"item1": "value1",
"item2": "value2",
"sub items": [
{
"subitem": "subvalue"
}
]
},
{
"item1": "value1_2",
"item2": "value2_2",
"sub items_2": [
{
"subitem_2": "subvalue_2"
}
]
}
]
CODICE:
arr=( $(jq -r '.[].item2' json) )
printf '%sn' "${arr[@]}"
USCITA:
value2
value2_2