使用 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?))'
如何使用 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?))'