什么是 XML 的 XPath、SelectNodes、SelectSingleNode 的 JSON.NET 等价物? [英] What is the JSON.NET equivalent of XML's XPath, SelectNodes, SelectSingleNode?
问题描述
目前我的代码结构使用XmlDocument
加载Xml数据,然后SelectNodes
遍历一个重复项的列表.
At present, the structure of my code uses XmlDocument
to load Xml data and then SelectNodes
to iterate through a list of repeating items.
对于每个元素,我使用 XmlNode.SelectSingleNode
来挑选字段元素.
For each element, I am using XmlNode.SelectSingleNode
to pick out the field elements.
我现在想使用 JSON.NET 来获得与作为 JSON 交付给我的文档相同的结果.答案可以不是 JSON.net,只要它是 C# 可集成的.
I now want to use JSON.NET to achieve the same results with documents delivered to me as JSON. The answer can be something other than JSON.net, so long as it's C# integrable.
推荐答案
Json.NET 有 SelectToken.它使用类似于 DataBinder.Eval 的语法通过字符串表达式获取 JSON:
Json.NET has SelectToken. It uses a syntax similar to DataBinder.Eval to get JSON via a string expression:
JObject o = JObject.Parse("{'People':[{'Name':'Jeff'},{'Name':'Joe'}]}");
// get name token of first person and convert to a string
string name = (string)o.SelectToken("People[0].Name");
或者如果您想选择多个值:
Or if you wanted to select multiple values:
JObject o = JObject.Parse("{'People':[{'Name':'Jeff','Roles':['Manager', 'Admin']}]}");
// get role array token of first person and convert to a list of strings
IList<string> names = (string)o.SelectToken("People[0].Roles").Select(t => (string)t).ToList();
这篇关于什么是 XML 的 XPath、SelectNodes、SelectSingleNode 的 JSON.NET 等价物?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!