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

StackOverflow https://stackoverflow.com/questions/1698175

  •  18-09-2019
  •  | 
  •  

目前,我的代码的结构使用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与SelectToken

其他提示

你有一个对象层次,你可以映射的JSON?可以创建一个对象树(即反序列化JSON),并使用LINQ的WhereSelectMany

scroll top