6
4

2 回答 2

3

来自 JSON.NET 的作者:

由于 Json.NET 6.0 使用对 JSONPath 的完全支持来支持 SelectToken,JSONPath 是一种类似于 XPath 的 JSON 查询语言。

JObject o = JObject.Parse(@"{
  ""Manufacturers"": [
    {
      ""Name"": ""Acme Co"",
      ""Products"": [
        {
          ""Name"": ""Anvil"",
          ""Price"": 50
        }
      ]
    },
    {
      ""Name"": ""Contoso"",
      ""Products"": [
        {
          ""Name"": ""Elbow Grease"",
          ""Price"": 99.95
        },
        {
          ""Name"": ""Headlight Fluid"",
          ""Price"": 4
        }
      ]
    }
  ]
}");

// manufacturer with the name 'Acme Co'
var acme = o.SelectToken("$.Manufacturers[?(@.Name == 'Acme Co')]");

有关博客文章的更多详细信息

于 2015-03-16T16:53:54.980 回答
3

JObject.SelectToken 可以做 XPath 可以做的同样的事情吗?

SelectToken 函数的 Path 参数的语法是什么?

我相信它只支持单个令牌的字符串路径,例如"branches[0].employees[0].name"

如何选择 Name=”Name1” 的所有员工 EmpId?

我不确定SelectToken能否做到这一点,并且您的问题的限制排除了最常见的解决方案。

我找不到太多关于要传递给 SelectToken 函数的路径字符串的文档(基本上是语法)。

这里的一些文档:

路径由用句点分隔的属性名称和数组索引组成。数组索引可以使用方括号或圆括号。

于 2012-12-09T22:01:43.550 回答