Heim >Backend-Entwicklung >C++ >Wie deserialisiere ich abgeleitete Typen effizient mit Json.Net?

Wie deserialisiere ich abgeleitete Typen effizient mit Json.Net?

Patricia Arquette
Patricia ArquetteOriginal
2025-01-21 18:38:09270Durchsuche

How to Deserialize Derived Types Efficiently with 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:

  • Datengröße erhöht: Der serialisierte JSON-Stream wird größer, da er jetzt den Typnamen enthält.
  • Auswirkungen auf die Leistung: Die Deserialisierung kann langsamer sein, da sie den Vergleich des Typnamens mit verfügbaren registrierten Typen erfordert.

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!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn