在Json.NET中查找任何节点

我正在使用NewtonSoft Json.NET库来解析.NET应用程序中的 JSON文件.
我需要做的是传递节点的名称,并获取节点(如果存在),无论其事先未知的级别如何.

例如在一个文件中:

string json = @"{
  ""Name"": ""Apple"",""Expiry"": new Date(1230422400000),""Price"": 3.99,""ATest"": {
    ""MyTest"":
    [
       ""blah"",""blah""
    ]
  }
}";

有没有办法只使用值“MyTest”来获取该节点而不必知道像jObject [“ATest”] [“MyTest”] [0]那样的父名称?

AFAIK对于JToken / JObject没有类似XPath的查询语法,但你可以很容易地创建一个 – 请参阅下面的代码.
public static class StackOverflow_13033174
{
    public static void Test()
    {
        string json = @"{ 
                          ""Name"": ""Apple"",""ATest"": { 
                            ""MyTest"": 
                            [ 
                               ""blah"",""blah"" 
                            ] 
                          } 
                        }";

        JObject jo = JObject.Parse(json);
        JToken myTest = jo.Descendants()
            .Where(t => t.Type == JTokenType.Property && ((JProperty)t).Name == "MyTest")
            .Select(p => ((JProperty)p).Value)
            .FirstOrDefault();
        Console.WriteLine(myTest);
    }
}

相关文章

AJAX是一种基于JavaScript和XML的技术,能够使网页实现异步交...
在网页开发中,我们常常需要通过Ajax从后端获取数据并在页面...
在前端开发中,经常需要循环JSON对象数组进行数据操作。使用...
AJAX(Asynchronous JavaScript and XML)是一种用于创建 We...
AJAX技术被广泛应用于现代Web开发,它可以在无需重新加载页面...
Ajax是一种通过JavaScript和HTTP请求交互的技术,可以实现无...