什么是JSON.NET相当于XML的XPath中的SelectNodes,的SelectSingleNode的?
题
目前,我的代码的结构使用XmlDocument
装载XML数据,然后通过SelectNodes
重复项目的列表进行迭代。
对于每个元素,我使用XmlNode.SelectSingleNode
挑出域元素。
我现在想用JSON.NET实现与交付给我的JSON文件相同的结果。答案可能比其他JSON.net东西,只要它是C#积。
解决方案
Json.NET 具有SelectToken。它使用类似于的DataBinder.Eval语法经由一个字符串表达式获得JSON:
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");
或者,如果你想选择多个值:
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();
其他提示
你有一个对象层次,你可以映射的JSON?可以创建一个对象树(即反序列化JSON),并使用LINQ的Where
,SelectMany
等
不隶属于 StackOverflow