Heim > Backend-Entwicklung > C++ > Wie kann ich polymorphe Kinderobjekte in json.net ohne ein '$ type' -Feld serialisieren und deserialisieren?

Wie kann ich polymorphe Kinderobjekte in json.net ohne ein '$ type' -Feld serialisieren und deserialisieren?

Mary-Kate Olsen
Freigeben: 2025-01-24 13:07:08
Original
661 Leute haben es durchsucht

How Can I Serialize and Deserialize Polymorphic Child Objects in JSON.NET Without a

Datentypen mit polymorphen Sub -Objekten mit JSON.NET -Serialisierung und Desertilisation

json.net ermöglicht eine Serialisierung und Derivatisierung zwischen JSON und C# -Klass, kann jedoch bei der Verarbeitung polymorpher Objekte kompliziert werden.

Verwenden Sie das Feld $ type

Die Standardmethode besteht darin, JSON

ein TypeNameHandling.Auto Feld hinzuzufügen, um den Typ des Sub -Objekts anzuzeigen. Dies wird jedoch ein unnötiges Feld einführen. $type

alternative Behandlungsmethode vom Typ Sub -Typ

Um das Feld zu vermeiden, besteht eine alternative Methode darin, eine Basisklasse für polymorphe Objekte zu erstellen und ein

-Merkmals hinzuzufügen, um den Unter -Typ anzuzeigen. Dies erfordert jedoch, dass die Containerklasse Sub -Object -Instanzen einbezieht, um auf das Attribut $type während der Serialisierung zuzugreifen. Type Type Die Sub -Typ -Attribute in der Basisklasse

Eine stabilere Methode besteht darin, der Basisklasse Informationen als Attribute als Attribute hinzuzufügen. Dies erfolgt mit benutzerdefinierten .

benutzerdefinierten Sub -Typ -Konverter JsonConverter Type Benutzerdefinierte Konverter verwendet die

-Methode, um die Eigenschaft "Typ" in JSON und entsprechend serialisierten Objekten zu überprüfen. Es definiert auch eine -Methode, um den Typ anzugeben, den es verarbeiten kann.

Code -Implementierung

Die folgende Prototyp -Implementierung erklärt diese Methode: ReadJson CanConvert

Durch diese Ersatzmethode werden die Informationen zum Sub -Typ in JSON selbst ohne separate

-Felder eingebettet und bieten eine flexible Lösung für serialisierte Polymerobjekte.

Diese gedrehte Ausgabe vermeidet unnötige Auswältigung wie "Der Standard -Ansatz ist ...", während die ursprüngliche Bedeutung und die Strudel aufrechterhalten wird. > Abschnitt mit der Aktivitätseinheit des benutzerdefinierten Konverters

Das obige ist der detaillierte Inhalt vonWie kann ich polymorphe Kinderobjekte in json.net ohne ein '$ type' -Feld serialisieren und deserialisieren?. 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