Ich habe eine JSON-Ausgabe, die eine Liste von Objekten enthält, die in einer Variablen gespeichert sind. (Möglicherweise formuliere ich das nicht richtig)
[
{
"item1": "value1",
"item2": "value2",
"sub items": [
{
"subitem": "subvalue"
}
]
},
{
"item1": "value1_2",
"item2": "value2_2",
"sub items_2": [
{
"subitem_2": "subvalue_2"
}
]
}
]
Ich brauche alle Werte für item2 in einem Array, damit ein Bash-Skript unter Ubuntu 14.04.1 ausgeführt werden kann.
Ich habe eine Reihe von Möglichkeiten gefunden, das gesamte Ergebnis in ein Array zu bekommen, aber nicht nur die Elemente, die ich brauche
Akzeptierte Antwort:
Mit jq :
$ cat json
[
{
"item1": "value1",
"item2": "value2",
"sub items": [
{
"subitem": "subvalue"
}
]
},
{
"item1": "value1_2",
"item2": "value2_2",
"sub items_2": [
{
"subitem_2": "subvalue_2"
}
]
}
]
CODE:
arr=( $(jq -r '.[].item2' json) )
printf '%sn' "${arr[@]}"
AUSGABE:
value2
value2_2