At present, the structure of my code uses XmlDocument
to load Xml data and then SelectNodes
to iterate through a list of repeating items.
F
Do you have an object hierarchy that you can map the the JSON? You could create an object tree (i.e. deserialize the JSON), and use LINQ's Where
, SelectMany
, etc.
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();
Documentation: Querying JSON with SelectToken