Json JObject.SelectTokens 中 Json.net 中的路径查询未返回结果

Json path query in JObject.SelectTokens in Json.net not returning results

我有一个json这样的

{
  "Attributes": [
    {
      "Name": "attr1",
      "Value": "abcd"
    },
    {
      "Name": "attr2",
      "Value": "abcde"
    },
    {
      "Name": "attr3",
      "Value": "abcdef"
    }
  ],
  "SomeObject": {
    "Attributes": [
      {
        "Name": "attr1",
        "Value": "xyz"
      },
      {
        "Name": "attr2",
        "Value": "xyza"
      },
      {
        "Name": "attr3",
        "Value": "wxyxz"
      }
    ]
  }
}

我正在实现一个通用代码。每次对象结构可能发生变化,但属性结构将保持不变。我想通过匹配名称=="attr1" 来找到所有属性。我读到了 JsonPath。我正在使用 Json.net(Newtonsoft) 库进行 json 操作。我遇到了这个 -> JObject.SelectTokens(jsonPath)。我创建了一个 json 路径查询作为 $.[?(@.Name=='attr1')] 并在 http://jsonpath.com/ 进行了测试。它工作正常,但在 c# 代码中它给了我空结果。谁能给我建议一个解决方案,感谢您的帮助!

使用这个 JsonPath 只需在 $

之后多加一个点
$..[?(@.Name=='attr1')]