Necesito seleccionar algunos valores de una respuesta json. Estoy usando json.net, bien con las cosas más simples, pero no parece haber mucha documentación/tutoriales sobre nada más allá de eso. En el ejemplo de JSON a continuación necesito para seleccionar todas las edades:JSON.NET Selección de elementos en la matriz con linq
{
"teacherHolder": [{
"id": 200000001,
"name": "Mr Test",
"class": "a4",
"students": [{
"id": "100532469",
"name": "ben"
},
{
"id": "100506025",
"name": "bill"
},
{
"id": "100000447",
"name": "bob"
}]
}]
}
He intentado esto y otras variaciones:
var stuff = response["teacherHolder"].Children()["students"];
var names = from y in stuff.Children().Values()
select y["name"];
y esto:
var names= response["teacherHolder"]
.Select(s => (string)s.SelectToken("students[0].name")).ToList();
la respuesta es un JObject de una webrequest. acabo de volver esto:
[{"Key":"Newtonsoft.Json.Linq.JEnumerable`1[Newtonsoft.Json.Linq.JToken]","Value":"Newtonsoft.Json.Linq.JEnumerable`1[Newtonsoft.Json.Linq.JToken]"}]
Los resultados son finalmente pusieron en un diccionario.
¿Alguna idea de cómo hacer esto? Sé que será simple, simplemente no he encontrado la combinación correcta.
Hola svick im usando el primer método - Pero estoy de vuelta es: {Newtonsoft.Json.Linq.JEnumerable} en la variable de nombres? –
gdp
Sí, es por eso que dije que necesitas agregar 'Valores()' si quieres una colección de 'string's. –
svick
Hola svick he agregado los valores() hasta el final. es ahora: var names = students.Children() ["name"]. Valores (); –
gdp