Ich muss Benutzer auswählen, die eine "3" in ihrem JSON-Array haben.LINQ to JSON - Abfragen eines Arrays
{
"People":[
{
"id" : "123",
"firstName" : "Bill",
"lastName" : "Gates",
"roleIds" : {
"int" : ["3", "9", "1"]
}
},
{
"id" : "456",
"firstName" : "Steve",
"lastName" : "Jobs",
"roleIds" : {
"int" : ["3", "1"]
}
},
{
"id" : "789",
"firstName" : "Elon",
"lastName" : "Musk",
"roleIds" : {
"int" : ["3", "7"]
}
},
{
"id" : "012",
"firstName" : "Agatha",
"lastName" : "Christie",
"roleIds" : {
"int" : "2"
}
}
]}
Am Ende sollte meine Ergebnisse Elon Musk & Steve Jobs sein. Dies ist der Code, den ich verwenden (& andere Variationen):
var roleIds = pplFeed["People"]["roleIds"].Children()["int"].Values<string>();
var resAnAssocInfo = pplFeed["People"]
.Where(p => p["roleIds"].Children()["int"].Values<string>().Contains("3"))
.Select(p => new
{
id = p["id"],
FName = p["firstName"],
LName = p["lastName"]
}).ToList();
ich die folgende Fehlermeldung erhalten:
"Accessed JArray values with invalid key value: "roleIds". Int32 array index expected"
I .Values<string>()
zu .Values<int>()
geändert und noch kein Glück.
Was mache ich falsch?
Ihre JSON ungültig ist. Laden Sie es auf https://jsonformatter.curiousconcept.com/ hoch, um das Problem zu sehen. Möglicherweise '{" People ": [{{id": "123" ... 'sollte' {"People" sein: [{"id": "123" ... ', mit dem passenden'} 'auch vom Ende entfernt? – dbc
Gutes Auge. Ich habe den JSON aktualisiert, um dem korrekten Format zu folgen. Es funktioniert jedoch immer noch nicht. Irgendeine Idee, was ich falsch mache? –