Ich muss einige Werte aus einer JSON-Antwort auswählen. Ich benutze json.net, gut mit dem einfacheren Zeug, aber es scheint nicht viel Dokumentation/Tutorials auf etwas vorbei zu geben. Im json Beispiel unten Ich brauche alle Altersstufen wählen:JSON.NET Auswählen von Elementen im Array mit linq
{
"teacherHolder": [{
"id": 200000001,
"name": "Mr Test",
"class": "a4",
"students": [{
"id": "100532469",
"name": "ben"
},
{
"id": "100506025",
"name": "bill"
},
{
"id": "100000447",
"name": "bob"
}]
}]
}
Ich habe diese und andere Variationen versucht:
var stuff = response["teacherHolder"].Children()["students"];
var names = from y in stuff.Children().Values()
select y["name"];
und diese:
var names= response["teacherHolder"]
.Select(s => (string)s.SelectToken("students[0].name")).ToList();
Antwort ist ein JObject von einer Webanfrage. bekomme ich nur diese zurück:
[{"Key":"Newtonsoft.Json.Linq.JEnumerable`1[Newtonsoft.Json.Linq.JToken]","Value":"Newtonsoft.Json.Linq.JEnumerable`1[Newtonsoft.Json.Linq.JToken]"}]
Die Ergebnisse schließlich in ein Wörterbuch gesetzt werden.
Irgendeine Idee, wie man das macht? Ich weiß, es wird einfach sein, ich habe einfach nicht die richtige Kombination gefunden.
Hallo svick im mit der ersten Methode - aber ich bin immer wieder heißt: {Newtonsoft.Json.Linq.JEnumerable} in der Variablen names? –
gdp
Ja, deshalb habe ich gesagt, dass du 'Values ()' hinzufügen musst, wenn du eine Sammlung von 'strings' willst. –
svick
Hi svick ich habe die Werte() an das Ende hinzugefügt. es ist jetzt: var names = students.Children() ["name"]. Werte (); –
gdp