目前,我的代码结构使用XmlDocument
加载Xml数据,然后使用SelectNodes
迭代重复项列表。
对于每个元素,我使用XmlNode.SelectSingleNode
来挑选字段元素。
我现在想要使用JSON.NET来实现与作为JSON提供给我的文档相同的结果。答案可能是JSON.net之外的其他内容,只要它是C#integrable。
答案 0 :(得分:38)
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();
答案 1 :(得分:1)
您是否有可以映射JSON的对象层次结构?您可以创建一个对象树(即反序列化JSON),并使用LINQ的Where
,SelectMany
等。