我正在尝试找到一种应用以下过滤器的程序方式。给定以下对象,如何获取包含 child 的所有顶级键c2
?
{
"a1" : {
"b" : {
"c1": {},
"c2": {}
}
},
"a2" : {
"b" : {
"c1" : {}
}
},
"a3" : {
"b" : {
"c1" : {},
"c2" : {}
}
}
}
预期结果:
["a1", "a3"]
我需要 JSONPath、JMESPath 或 ObjectPath 语法中的过滤器。
我在 ObjectPath 中尝试过无数种组合,例如 JSONPath$.*[@.b.c2]
中的东西$..[?(b.c2)]
,直至 JMESPath 之类的构造@.* | [?contains(keys(@), 'c2')]
-@.*[b.c2] | @
都无济于事。