PO jest rzeczywiście opisuje obiekty, VS tablic.
Aby być pewnym, że pomagamy innym osobom, które są w rzeczywistości szukasz pomocy z tablicami JSON, warto je jednak wyraźnie zakryć.
do bezpiecznego-owski przypadku gdy ciągi nie może zawierać znaki nowej linii (i kiedy bash 4.0 lub nowsza jest w użyciu), to działa:
str='["Hello world", "bla bla bla Mr. Freeman"]'
readarray -t array <<<"$(jq -r '.[]' <<<"$str")"
celu wspierania starszych wersji bash i Struny z nowej linii, możemy uzyskać nieco bardziej wyszukane, wykorzystując NUL-ograniczony strumień odczytać z jq
:
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")')
próbuję użyć 'jq -r” .param_name'' ale swoją pracę tylko wtedy, gdy znać nazwę param – Evgenii
Jeśli twój skrypt otrzyma arbitralny JSON, może to być niemożliwe do wykonania w czystej bash. – helpermethod