除了其他顶级内容外,我还拥有JSON,其中包括以下内容:
{
"organizationStructure": [
{
"id": 212119,
"key": "level2"
},
{
"id": 212112,
"key": "level1"
}
]
}
如何过滤关键字以仅找到给定的ID(例如“ level2”的ID)?
答案 0 :(得分:4)
或者,使其更简单(或更复杂,具体取决于您的观点):
jq '.organizationalStructure[] |
select(.key == "level1") | {id: .id}'
通常,清理输出很不错:
jq -r '.organizationalStructure[] |
select(.key == "level1") | {id: .id}.id'
根据PesaThe在评论中的建议,可以将其简化为:
jq -r '.organizationalStructure[] |
select(.key == "level1").id'
和{.id: id}
可以简单地写成{id}
答案 1 :(得分:0)
可以使用select
完成此操作。请注意,如果有多个项的键为level2
,则只会返回第一个项:
.organizationalStructure | map(select(.key == "level2") | .id)[0]