我正在尝试使用 jsonPath 和 pick 函数来确定是否需要根据当前域运行规则。我正在做的简化版本在这里:
global
{
dataset shopscotchMerchants <- "https://s3.amazonaws.com/app-files/dev/merchantJson.json" cachable for 2 seconds
}
rule checkdataset is active
{
select when pageview ".*" setting ()
pre
{
merchantData = shopscotchMerchants.pick("$.merchants[?(@.merchant=='Telefora')]");
}
emit
<|
console.log(merchantData);
|>
}
我期望的控制台输出是 telefora 对象,而不是我从 json 文件中获取所有三个对象。
如果我使用 MercerID==16 而不是 Mercer=='Telefora',那么它会很好用。我认为 jsonPath 也可以匹配字符串。尽管上面的示例没有针对 json 的 MercerDomain 部分进行搜索,但我遇到了同样的问题。