Die Frage des OP-Objekte tatsächlich beschreibt, vs-Arrays.
Um sicher zu sein, dass wir anderen Menschen helfen, die kommen tatsächlich auf der Suche nach Hilfe mit JSON-Arrays, obwohl, es lohnt sich, sie explizit zu behandeln.
Für den sicheren ish Fall, in dem Zeichenketten nicht Zeilenumbrüche enthalten kann (und wenn bash 4.0 oder höher verwendet wird), das funktioniert:
str='["Hello world", "bla bla bla Mr. Freeman"]'
readarray -t array <<<"$(jq -r '.[]' <<<"$str")"
Um ältere Versionen von Bash zu unterstützen und Strings mit Zeilenumbrüchen, bekommen wir ein bisschen schicker, einen NUL-getrennten Strom unter Verwendung von jq
zu lesen:
str='["Hello world", "bla bla bla Mr. Freeman", "this is\ntwo lines"]'
array=()
while IFS= read -r -d '' line; do
array+=("$line")
done < <(jq -j '.[] | (. + "\u0000")')
ich versuchen 'jq -r‘ .param_name'' aber seine Arbeit nur, wenn wir Name des Parameters kennen – Evgenii
Wenn Ihr Skript eine beliebige JSON empfängt, ist dies in pure bash nicht möglich. – helpermethod