Как фильтровать по логическому значению в выражении Gatling JSONPath? - PullRequest
0 голосов
/ 07 ноября 2018

Как фильтровать по логическому значению в выражении JSONPath?

Я использую этот сайт, который не может проверить мое выражение, и я ищу объяснение, почему: https://jsonpath.curiousconcept.com/#

Мой JSON

{
  "whatever" : {
    "best" : {
      "reward" : "true"
    } 
  } 
}

И мое выражение, которое не соответствует (в Gatling, не сайте валидатора), является одним из следующих:

$.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

1 Ответ

0 голосов
/ 08 ноября 2018

Реализация, используемая в онлайн-оценщике, о котором вы упоминаете, не работает.

Выражение $.whatever.best[?(@.reward=='true')] является правильным, поскольку "true" не является логическим значением JSON, а является строковым. Реализация Гатлинга верна и работает как положено.

...