2 Stimmen

Derserialisierung verschachtelter JO-Objekte in Dictionary<string,string> in JSON.Net

Ich versuche, einige Daten zu deserialisieren, die wie aussehen:

{
   "item1":"value1",
   "item2":2,
   "item3":true,
   "item4":{
       "subItem1":"subValue1",
       "subItem2":"subValue2",
   }
}

In C# möchte ich das deserialisierte Objekt eine Instanz von etwas wie sein:

Dictionary<string, object>

Der tatsächliche Typ jedes Value-Objekts ist entweder: string, double, boolean oder Dictionary<string,string>

Ich kann trivialerweise eine Aussage wie diese verwenden:

JSONConvert.Deserialise<Dictionary<string,object>>(text);

aber das gibt mir Value-Objekte der Typen: string, double, boolean oder JObject

Ich bin daran interessiert, herauszufinden, wie man das Unbekannte weiterleiten kann. JObject in Dictionary<string, string> Objekte.

3voto

L.B Punkte 110059

Anstatt in ein Wörterbuch zu deserialisieren, können Sie die Funktion dynamic

dynamic json = JsonConvert.DeserializeObject(text);
Console.WriteLine(json.item1);
Console.WriteLine(json.item4.subItem1);

JObject implementiert auch IDictionary, so dass Sie es auch verwenden können als

var jobj = (JObject)JsonConvert.DeserializeObject(text);
Console.WriteLine(jobj["item4"]["subItem1"]);

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X