Доступ к предкам массива с заданным значением - PullRequest
0 голосов
/ 30 ноября 2018

Я не могу найти секретный соус, чтобы заставить jq делать то, что я хочу.

Учитывая следующий надуманный ввод:

{
    "node1": {
        "1": {
            "Aliases": ["one", "uno"]
        },
        "2": {
            "Aliases": ["two", "dos"]
        }
    },
    "node2": {
        "a": {
            "Aliases": ["alpha"]
        },
        "b": {
            "Aliases": ["bravo"]
        }
    }
}

Я хочу вернуть ключипредки Aliases, когда Aliases содержит определенное значение.

Например, учитывая ключ поиска dos, я хочу вернуть node1 и 2.

Youможете играть с этими данными в jqplay .Любая помощь будет оценена.

1 Ответ

0 голосов
/ 30 ноября 2018
(paths | select(.[-2] == "Aliases")) as $p
| select( "dos" == getpath($p))
| $p[:-2][]

Обратите внимание, что нет необходимости в дополнительной переменной (. as $in).

...