我正在使用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); } }
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。