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

时间:2018-06-07 09:49:16

标签: c# json json.net jsonpath

我有像这样的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"
      }
    ]
  }
}

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

1 个答案:

答案 0 :(得分:1)

使用此JsonPath只需在$

之后添加一个额外的点
$..[?(@.Name=='attr1')]