使用 jq 递归查找具有给定键名的第一个 json 对象

Find first json object with given key name recursively using jq

如何使用 jq 递归查找具有给定名称的第一个键?

假设我有 JSON 结构:

{
  "firstKey": { 
      "secondKey": {
          "model": {
              "name": {
                  ....
               } 
           }
       }
   }
}   

有什么方法可以告诉 jq return 我首先找到 json 具有键名的对象,例如在这种情况下 "model"?所以它 returns:

"model": {
    "name:" {
      ....
    } 
}

到select只是第一个,使用first:

first(.. | objects | select(has("model")))

或者如果最小化击键是一个目标:

first(..|select(.model?))

或者,如果您的输入有多个 top-level JSON 文档,而您最多只想要其中的一个:

jq -n 'first(inputs|..|select(.model?))'