在Json.NET中查找任何节点
发布时间:2020-12-16 19:52:23 所属栏目:百科 来源:网络整理
导读:我正在使用NewtonSoft Json.NET库来解析.NET应用程序中的 JSON文件. 我需要做的是传递节点的名称,并获取节点(如果存在),无论其事先未知的级别如何. 例如在一个文件中: string json = @"{ ""Name"": ""Apple"",""Expiry"": new Date(1230422400000),""Price"
我正在使用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); } } (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |