Ich habe folgende JSON:Deserialize dynamisch genannt JSON-Objekte in C# (mit JSON.Net oder anderweitig)
{
"aaaa": {
"name": "General Name",
"product": "book",
"host": "book.example.com",
"chapters": {
"bbbb": {
"name": "Chapter 1",
"page": "1",
"end_page": "25"
}
},
"categories" : {
"analysis":{
"Abbbb" : {
"name": "B Chapter",
"id" : "9001"
},
"Acccc" : {
"name": "C Chapter",
"id" : "9001"
},
"Adddd" : {
"name": "D Chapter",
"id" : "9001"
},
"Aeeee" : {
"name": "E Chapter",
"id" : "9001"
},
"Affff" : {
"name": "F Chapter",
"id" : "9001"
},
"Agggg" : {
"name": "G Chapter",
"id" : "9001"
}
},
"sources":{
"acks" : {
"name": "S. Spielberg",
"id" : "9001"
}
}
}
}
"yyyy": {
"name": "Y General Name",
"product": "Y book",
"host": "ybook.example.com",
...
}
"zzzz": {
"name": "Z General Name",
"product": "Z book",
"host": "zbook.example.com",
...
}
Die Werte für aaaa
, yyyy
und zzzz
eine beliebige Zeichenfolge und es kann eine beliebige Zahl sein kann von ihnen.
Ich muss alle [aaaa|yyyy|zzz].categories.analysis
Werte extrahieren. Das heißt, ich brauche mit einem Dictionary<string, string>
der Objekt Namen (z.B. Abbbb
, Acccc
, etc.) und der ID, ignorierte die name
Zeichenfolge enden.
Eg, [Abbbb, 9001] [Acccc, 9001] [Adddd, 9001] ... [Zaaaa, 9001]
Ich habe viel zu lange auf diese gewesen und fühlen als ob mir etwas offensichtlich fehlt. Ich habe JSON.net und native Serialisierung ausprobiert. Dies ist eine triviale Aufgabe in jeder anderen Sprache, die ich benutzt habe.
Ich habe nahe kommen mit etwas wie folgt aus:
var ajsonObject = JsonConvert.DeserializeObject<dynamic>(jsonString);
var oasearch_categories = ajsonObject.aaaa.categories.analysis;
Aber auch hier aaaa
kann eine beliebige Zeichenfolge sein, so dass ich bin mir nicht sicher, wie das dynamisch zu verweisen.