什么是JSON.NET相当于XML的XPath,SelectNodes,SelectSingleNode?

Dea*_*unt 27 c# json.net

目前,我的代码结构XmlDocument用于加载Xml数据,然后SelectNodes迭代重复项列表.

对于每个元素,我XmlNode.SelectSingleNode用来挑选字段元素.

我现在想要使用JSON.NET来实现与作为JSON传递给我的文档相同的结果.答案可能是JSON.net之外的其他东西,只要它是C#可积极的.

Jam*_*ing 39

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");
Run Code Online (Sandbox Code Playgroud)

或者,如果要选择多个值:

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();
Run Code Online (Sandbox Code Playgroud)

文档:使用SelectToken查询JSON