Wenn ich ein Wörterbuch habe und z. eine Instanz einer Klasse MyClass zu diesem Wörterbuch, wie stelle ich sicher, dass eine Deserialisierung und Serialisierung des Wörterbuchs die Klasse und nicht ein JObject enthält?Deserialisieren und serialisieren eines Wörterbuchs <string, object> mit JSON.NET
internal class MyClass
{
public string MyProperty { get; set; }
}
[TestMethod]
public async Task DebugTest()
{
Dictionary<string, object> testDictionary = new Dictionary<string, object>();
testDictionary.Add("testkey", new MyClass() { MyProperty = "testproperty" });
string json = JsonConvert.SerializeObject(testDictionary);
Dictionary<string, object> restoredDictionary = JsonConvert.DeserializeObject<Dictionary<string, object>>(json);
}
Das testDictionary enthält die MyClass, aber das restoredDictionary enthält ein JObject.
Update: Bitte beachten Sie, dass ich String, Objekt verwenden muss. Also ich bin wirklich auf der Suche nach einer Möglichkeit zu sagen, Json.Net zu einer Klasse und nicht JObject zu konvertieren
Versuchen Sie 'var restoredDictionary = JsonConvert.DeserializeObject> (json); ' –
Ersetzen Sie Ihre mit testDictionary und restauredDictionary mit' Dictionary '..Warum wollen Sie Objekt verwenden? –
Vandita
Ich möchte String, Objekt verwenden, um verschiedene Arten von Objekten (wie MyClassA, MyClassB usw.) zu fangen. Es ist Teil eines größeren Objektmodells mit ObjectConverters. Dieser Teil funktioniert gut, nur das Wörterbuch ist ein Problem. – MortenGR