如何在JSONPath表达式中按布尔值过滤?
我使用的这个网站无法验证我的表达,我正在寻找原因解释:https://jsonpath.curiousconcept.com/#
我的JSON是
{
"whatever" : {
"best" : {
"reward" : "true"
}
}
}
我的表达式(在加特林,而不是验证者站点)不匹配,是以下两种情况之一:
$.whatever.best[?(@.reward=='true')]
$.whatever.best[?(@.reward==true)]
此表达式可以正常工作:
$.whatever.best.reward
奇怪的是,这可行:
$..*[?(@.reward==true)]
怎么了?请不要猜测。我提供该网站是为了验证您的答案。
此处的说明对我没有帮助:https://support.smartbear.com/alertsite/docs/monitors/api/endpoint/jsonpath.html#filters
答案 0 :(得分:0)
您提到的在线评估程序中使用的实现已损坏。
$.whatever.best[?(@.reward=='true')]
表达式是正确的,因为"true"
不是JSON布尔值,而是字符串1。
加特林实施是正确的,并且按预期工作。