我有一个如下所示的 JSON 文件:
{
"somename": {
"prop1": "https://xxxx",
"prop2": "xxxx",
"prop3": false
},
"anothername": {
"prop1": "https://yyyy",
"prop2": "yyyy",
"prop3": false
},
"fubar": {
"prop1": "https://yyyy",
"prop2": "yyyy",
"prop3": false
},
...
}
我主要使用 JSON 文件,其中事物的属性名称是恒定的,并且值会变化,并且我根据命名属性的值进行过滤。
在这种情况下,“prop1”、“prop2”和“prop3”属性是已知的,但封闭对象的名称(本质上是该属性的名称)是不同的。我需要获取的是这些属性名称。 例如,我需要获取“prop2”属性等于“yyyy”的命名块列表。 在这种情况下,它将是“anothername”和“fubar”,但我不知道如何在 jq 中做到这一点。
两者都有效
to_entries[] | select(.value.prop2 == "yyyy") .key
path(.[] | select(.prop2 == "yyyy"))[0]