在下面的 JSON 中,我需要找到每个对象的
id
键的值,其中 state
的值以“failed-”开头
[
{
"id": "RA_kwDOGETrS84EmTf2",
"state": "uploaded"
},
{
"id": "RA_kwDOGETrS84EmTf6",
"state": "failed-4325423"
},
{
"id": "RA_kwDOGETrS84EmTf7",
"state": "uploaded"
}
]
我只提取了
state
的匹配值:
.[] | .state | select(startswith("failed-"))
如何找到
id
对应的值?
.[] | select(.state | startswith("failed-")).id
将输出:
"RA_kwDOGETrS84EmTf6"
技巧就是将
state
中的
select()
传递给startswith()
,然后得到结果.id
.[] | select(.state | test("^failed")).id
是另一种方式