使用给定的字符串值过滤 JSONPath

Filtering JSONPath with given string value

如果我有一个像这样的JSON:

{
  "data": [
    {
        "service" : { "id" : 1 }
    },
    {
        "service" : { "id" : 2 }
    },
    {
        "service" : {}
    }
  ]
}

此查询有效:

$..service[?(@.id==2)]

并给出预期结果:

[
    {
        "id" : 2
    }
] 

但是,如果我有字符串作为 id:

{
  "data": [
    {
        "service" : { "id" : "a" }
    },
    {
        "service" : { "id" : "b" }
    },
    {
        "service" : {}
    }
  ]
}

运行 类似查询:

$..service[?(@.id == "a")]

没有给出结果(空数组)。
我正在使用 this evaluator.
我正在查看文档 here 但找不到任何东西可以指出我正确的方向......如果有人知道如何编写这样的查询,有什么帮助吗?谢谢:)

没有 " 作品

$..service[?(@.id == b)]

给出这个结果

[
   {
      "id" : "b"
   }
]