В ObjectPath селекторы работают только со списками, поэтому $. * [@. B.c2] не с чем работать.Вложенные объекты, как в вашем примере, встречаются редко, поэтому я не реализовал способ сделать то, что вам нужно.Вы можете попытаться преобразовать ваш объект в массив следующим образом:
[
{
"name": "a1",
"b": {
"c1": {},
"c2": {}
}
},
{
"name": "a2",
"b": {
"c1": {}
}
},
{
"name": "a3",
"b": {
"c1": {},
"c2": {}
}
}
]
и затем используйте селекторы.
$. * [@. B.c2 не является нулевым] .name
PS.Используйте новейшую версию ObjectPath от Github.Я исправил некоторые проблемы с нулевым сравнением минуту назад.