c# - read - ¿Cuál es el equivalente de JSON.NET de XPath, SelectNodes, SelectSingleNode de XML?
xmlnodelist c# example (2)
Actualmente, la estructura de mi código utiliza XmlDocument
para cargar datos Xml y luego SelectNodes
para iterar a través de una lista de elementos que se repiten.
Para cada elemento, estoy usando XmlNode.SelectSingleNode
para seleccionar los elementos del campo.
Ahora quiero usar JSON.NET para lograr los mismos resultados con los documentos que recibí como JSON. La respuesta puede ser algo diferente a JSON.net, siempre que sea integrable en C #.
¿Tiene una jerarquía de objetos que puede asignar el JSON? Puede crear un árbol de objetos (es decir, deserializar el JSON) y usar el LINQ Where
, SelectMany
, etc.
Json.NET tiene SelectToken. Utiliza una sintaxis similar a DataBinder.Eval para obtener JSON a través de una expresión de cadena:
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");
O si desea seleccionar varios valores:
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();
Documentación: Consultar JSON con SelectToken