Heim >Backend-Entwicklung >C++ >Wie deserialisiere ich abgeleitete Typen effizient mit Json.Net?
Von Json.Net abgeleitete Deserialisierungstechniken
Json.Net ist ein leistungsstarkes JSON-Serialisierungs- und Deserialisierungstool, aber beim Umgang mit abgeleiteten Typen wird die Deserialisierung komplizierter. In diesem Artikel wird untersucht, wie Sie Json.Net effizient zum Deserialisieren abgeleiteter Typen verwenden können.
Verarbeitung von Typnamen
Eine erfolgreiche Deserialisierung abgeleiteter Typen erfordert die Aktivierung der Typnamenbehandlung. Diese Einstellung weist Json.Net an, Typnamen in den serialisierten JSON-Stream aufzunehmen. Standardmäßig ist die Verarbeitung von Typnamen deaktiviert, was bei der Verarbeitung abgeleiteter Typen zu mehrdeutigen Deserialisierungsergebnissen führen kann.
Typnamenbehandlung aktivieren
Um die Verarbeitung von Typnamen zu aktivieren, können Sie JsonSerializerSettings
in einem TypeNameHandling.All
-Objekt angeben. Ein Beispiel ist wie folgt:
<code class="language-csharp">JsonSerializerSettings settings = new JsonSerializerSettings { TypeNameHandling = TypeNameHandling.All };</code>
Serialisierung und Deserialisierung
Bei aktivierter Typnamenbehandlung können abgeleitete Typen wie folgt serialisiert und deserialisiert werden:
<code class="language-csharp">// 序列化 string Serialized = JsonConvert.SerializeObject(inheritanceList, settings); // 反序列化 List<BaseClass> deserializedList = JsonConvert.DeserializeObject<List<BaseClass>>(Serialized, settings);</code>
Wichtige Hinweise
Das Aktivieren der Typnamenverarbeitung kann einige Probleme verursachen:
Zusammenfassung
Durch die Aktivierung der Typnamenverarbeitung in Json.Net können abgeleitete Typen effizient deserialisiert und ihre Vererbungshierarchie beibehalten werden. Mit dieser Funktion können Sie komplexe Datenstrukturen bequem und zuverlässig verarbeiten.
Das obige ist der detaillierte Inhalt vonWie deserialisiere ich abgeleitete Typen effizient mit Json.Net?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!