Heim > Backend-Entwicklung > C++ > Wie kann ich Sammlungen von Schnittstelleninstanzen mithilfe von Json.Net deserialisieren?

Wie kann ich Sammlungen von Schnittstelleninstanzen mithilfe von Json.Net deserialisieren?

Linda Hamilton
Freigeben: 2025-01-06 05:59:48
Original
311 Leute haben es durchsucht

How Can I Deserialize Collections of Interface Instances Using Json.Net?

Deserialisieren von Schnittstelleninstanzsammlungen

Es ist üblich, Daten als Instanzen von Schnittstellen zu speichern, wie im Beispiel ClassToSerializeViaJson. Allerdings kann die Deserialisierung solcher Sammlungen zu Fehlern wie dem in der Frage genannten führen.

Lösung:

Um das Problem zu beheben, erfordert Json.Net eine zusätzliche Konfiguration, um die Deserialisierung zu ermöglichen der Schnittstelle Instanzen.

  1. Serialisierung:

    • Setzen Sie TypeNameHandling auf Objects, um den Typnamen in die JSON-Nutzlast aufzunehmen.
    • Verwenden Sie FormatterAssemblyStyle.Simple, um den Typnamen zu vereinfachen Format.
string serializedJson = JsonConvert.SerializeObject(objectToSerialize, Formatting.Indented, new JsonSerializerSettings
{
    TypeNameHandling = TypeNameHandling.Objects,
    TypeNameAssemblyFormat = System.Runtime.Serialization.Formatters.FormatterAssemblyStyle.Simple
});
Nach dem Login kopieren
  1. Deserialisierung:

    • Setzen Sie TypeNameHandling auf Objekte, um den Typ zu aktivieren Identifizierung während Deserialisierung.
var deserializedObject = JsonConvert.DeserializeObject<ClassToSerializeViaJson>(serializedJson, new JsonSerializerSettings
{
    TypeNameHandling = TypeNameHandling.Objects
});
Nach dem Login kopieren

Durch die Implementierung dieser Einstellungen kann Json.Net Schnittstelleninstanzsammlungen ordnungsgemäß deserialisieren und so die Wiederherstellung der ursprünglichen Datenstruktur ermöglichen.

Das obige ist der detaillierte Inhalt vonWie kann ich Sammlungen von Schnittstelleninstanzen mithilfe von Json.Net 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