以给定值访问数组的祖先

时间:2018-11-30 16:33:18

标签: jq

我似乎找不到让jq做我想做的秘密调味料。

给出以下人为输入:

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

Aliases包含特定值时,我想返回Aliases的祖先的键。

例如,给定搜索键dos,我想返回node12

您可以使用此数据in jqplay进行播放。任何帮助将不胜感激。

1 个答案:

答案 0 :(得分:0)

(paths | select(.[-2] == "Aliases")) as $p
| select( "dos" == getpath($p))
| $p[:-2][]

请注意,不需要其他变量(. as $in)。