У меня есть следующий JSON:
{
"contexts": {
"context1": {
"mydata": "value1"
},
"context2": {
"mydata": "value2"
}
},
"current_context": "context2"
}
Я хотел бы использовать jq
для вывода значения mydata
для контекста, указанного current_context
.Выше будет выводить value2
.Если бы я изменил JSON на "current_context": "context1"
, я бы получил value1
.
Учитывая два вызова jq и вышеуказанное содержимое JSON в файле с именем jq.json
, это работает:
jq -r --arg context "$(jq -r '.current_context' jq.json)" '.contexts | to_entries[] | select(.key == $context) | .value.mydata' jq.json
Есть ли способ сделать это с помощью одного вызова jq?
Спасибо!