Использовать значение в качестве ключа для другого объекта в jq

Я настраиваю файл конфигурации json следующим образом

{
    "current": "config1",
    "config1": {
        "p1": "val1-1",
        "p2": "val1-2"
    },
    "config2": {
        "p1": "val2-1",
        "p2": "val2-2"
    }
}

Я хотел бы получить «текущий» конфиг с bash и jq. На данный момент я использую:

#!/usr/bin/env bash

C=`jq '.current' $1`
D=`eval jq '."$C"' $1`
echo " ------  D is $D"
echo $D | jq  '.p1'

Есть ли прямой трюк jq filter/key для получения того же результата?

Как сделать HTTP-запрос в Javascript?
Как сделать HTTP-запрос в Javascript?
В JavaScript вы можете сделать HTTP-запрос, используя объект XMLHttpRequest или более новый API fetch. Вот пример для обоих методов:
2
0
166
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Вам просто нужно использовать синтаксис итератора значения объекта .[] , чтобы сначала позволить .current расшириться до его составного значения, а затем выражение станет ."config1", которое соответствует ключу config1

jq '.[.current]'

Другие вопросы по теме