Maison > développement back-end > C++ > Comment puis-je désérialiser des collections d'instances d'interface à l'aide de Json.Net ?

Comment puis-je désérialiser des collections d'instances d'interface à l'aide de Json.Net ?

Linda Hamilton
Libérer: 2025-01-06 05:59:48
original
312 Les gens l'ont consulté

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

Désérialisation des collections d'instances d'interface

Il est courant de stocker des données sous forme d'instances d'interfaces, comme dans ClassToSerializeViaJson de l'exemple. Cependant, la désérialisation de telles collections peut provoquer des erreurs comme celle mentionnée dans la question.

Solution :

Pour résoudre le problème, Json.Net nécessite une configuration supplémentaire pour activer la désérialisation. d'interface instances.

  1. Sérialisation :

    • Définissez TypeNameHandling sur Objects pour inclure le nom du type dans la charge utile JSON.
    • Utilisez FormatterAssemblyStyle.Simple pour simplifier le nom du type format.
string serializedJson = JsonConvert.SerializeObject(objectToSerialize, Formatting.Indented, new JsonSerializerSettings
{
    TypeNameHandling = TypeNameHandling.Objects,
    TypeNameAssemblyFormat = System.Runtime.Serialization.Formatters.FormatterAssemblyStyle.Simple
});
Copier après la connexion
  1. Désérialisation :

    • Définissez TypeNameHandling sur Objets pour activer le type identification lors désérialisation.
var deserializedObject = JsonConvert.DeserializeObject<ClassToSerializeViaJson>(serializedJson, new JsonSerializerSettings
{
    TypeNameHandling = TypeNameHandling.Objects
});
Copier après la connexion

En implémentant ces paramètres, Json.Net peut désérialiser correctement les collections d'instances d'interface, permettant la récupération de la structure de données d'origine.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal