У меня есть скрипт bash (работающий на git bash для Windows), который использует curl для получения ответа json от сервера. Ответ содержит поле, содержащее данные JSON. Ответ выглядит так:
[{
"Status": "A",
"JSON": "{\"field1\":\"value1\"}"
}, {
"Status": "B",
"JSON": "{\"field1\":\"value2\"}"
}]
вот скрипт bash, с которым я пытаюсь разобрать эту строку:
#!/bin/bash
echo "parsing result in variable"
result='[{"Status":"A", "JSON":"{\"field1\":\"value1\"}"},{"Status":"B", "JSON":"{\"field1\":\"value2\"}"}]'
echo $result > json_in_json.json
result=$(echo "$result" | jq '[.[]."Status"]')
echo $result
echo "parsing result from file"
jq '[.[]."Status"]' json_in_json.json
и вот что я вижу в терминале
parsing result in variable
[{"Status":"A", "JSON":"{\"field1\":\"value1\"}"},{"Status":"B", "JSON":"{\"field1\":\"value2\"}"}]
]B",
parsing result from file
[
"A",
"B"
]
Есть ли способ заставить jq выводить тот же результат без прохождения временного файла?