Heim > Backend-Entwicklung > C++ > Wie kann Json.net mit der Serialisierung und Deserialisierung abgeleiteter Typen umgehen?

Wie kann Json.net mit der Serialisierung und Deserialisierung abgeleiteter Typen umgehen?

Barbara Streisand
Freigeben: 2025-01-21 18:28:10
Original
890 Leute haben es durchsucht

How Can Json.net Handle Serializing and Deserializing Derived Types?

Serialisierung und Deserialisierung abgeleiteter Typen in Json.NET (Newtonsoft)

Json.NET bietet Flexibilität bei der Serialisierung und Deserialisierung komplexer Datenstrukturen. Beim Umgang mit abgeleiteten Typen ist es wichtig, die Typinformationen während der Serialisierung beizubehalten, damit sie korrekt deserialisiert werden.

Json.NET implementiert diese Funktionalität über das JsonSerializerSettings-Attribut des TypeNameHandling-Objekts. Wenn Sie diese Eigenschaft auf All setzen, schließt Json.NET den Typnamen in die serialisierte Ausgabe ein.

Betrachten Sie beispielsweise die folgenden Basis- und abgeleiteten Klassen:

<code class="language-csharp">public class Base
{
    public string Name;
}

public class Derived : Base
{
    public string Something;
}</code>
Nach dem Login kopieren

So serialisieren und deserialisieren abgeleitete Typen:

<code class="language-csharp">// 序列化
var object1 = new Base() { Name = "Object1" };
var object2 = new Derived() { Something = "Some other thing" };
var inheritanceList = new List<Base>() { object1, object2 };

JsonSerializerSettings settings = new JsonSerializerSettings { TypeNameHandling = TypeNameHandling.All };
string serialized = JsonConvert.SerializeObject(inheritanceList, settings);

// 反序列化
var deserializedList = JsonConvert.DeserializeObject<List<Base>>(serialized, settings);</code>
Nach dem Login kopieren

Mit diesem Ansatz behält Json.NET Typinformationen bei, sodass abgeleitete Typen erfolgreich deserialisiert werden können. Es ist jedoch wichtig zu beachten, dass die serialisierte Ausgabe die mit den Objekten verknüpften Typen und alle zu deren Speicherung verwendeten Listen enthält.

Das obige ist der detaillierte Inhalt vonWie kann Json.net mit der Serialisierung und Deserialisierung abgeleiteter Typen umgehen?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Quelle:php.cn
Erklärung dieser Website
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
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage