In the JSON below, I need to find the value of the id
key of every object where the value of state
starts with "failed-"
[
{
"id": "RA_kwDOGETrS84EmTf2",
"state": "uploaded"
},
{
"id": "RA_kwDOGETrS84EmTf6",
"state": "failed-4325423"
},
{
"id": "RA_kwDOGETrS84EmTf7",
"state": "uploaded"
}
]
I got as far as extracting just the matching values of state
:
.[] | .state | select(startswith("failed-"))
How do I find the corresponding values of id
?
CodePudding user response:
.[] | select(.state | startswith("failed-")).id
Will output:
"RA_kwDOGETrS84EmTf6"
Trick is to pass state
in the select()
to startswith()
, and then get .id
of the result