Я пытаюсь использовать jsonPath и функцию выбора, чтобы определить, нужно ли запускать правило или нет на основе текущего домена. Упрощенная версия того, что я делаю, находится здесь:
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.
Если вместо мерчанта=='Телефора' использовать мерчИд==16, то все отлично работает. Я думал, что jsonPath также может сопоставлять строки. Хотя в приведенном выше примере не выполняется поиск по части json, относящейся к торговому домену, у меня возникла та же проблема.