如何使用jq递归查找具有给定名称的第一个键?
假设我具有JSON结构:
{
"firstKey": {
"secondKey": {
"model": {
"name": {
....
}
}
}
}
}
在这种情况下,有什么方法可以告诉jq返回我第一次找到的具有键名的json对象吗?因此它返回:
"model": {
"name:" {
....
}
}
答案 0 :(得分:2)
要仅选择第一个,请使用first
:
first(.. | objects | select(has("model")))
或者如果最小化击键是目标:
first(..|select(.model?))
或者,如果您的输入包含多个顶级JSON文档,并且您最多只希望其中一个:
jq -n 'first(inputs|..|select(.model?))'