难以理解包含 [?] 的 JSONPath

Hard to understand JSONPath containing [?]

在遗留系统中我发现了这个JSON路径:
$['data']..['rels'][?]['persons'][*]
我被 [?] 弄糊涂了, 因为我正在尝试重建预期的 JSON 应该喜欢(但不是):

{
  "tag1": ["VALUE1"],
  "data": [
    {
      "tag2": "VALUE2",
      "rels": [
        {
          "persons": [
            {
              "uid": "uid12"
            }
          ],
          "tag3": {
            "tag4": "tag4"
          }
        }
      ]
    }
  ]
}

我用了https://jsonpath.com/
感谢您的帮助

你对此感到困惑是对的。 JSON 路径语法无效。这是 Jayway JsonPath(JavaScript 实现)支持的扩展语法,他们称之为“过滤谓词”。您可以在项目的自述文件中阅读它。

我和其他一些人一直在为 JSON 路径编写一个 official specification,我最近在看到另一个问题后提出了这个问题。我们旨在避免这种混淆。