Maison >développement back-end >C++ >Comment désérialiser efficacement les types dérivés avec Json.Net ?

Comment désérialiser efficacement les types dérivés avec Json.Net ?

Patricia Arquette
Patricia Arquetteoriginal
2025-01-21 18:38:09329parcourir

How to Deserialize Derived Types Efficiently with Json.Net?

Techniques de désérialisation de type dérivé de Json.Net

Json.Net est un puissant outil de sérialisation et de désérialisation JSON, mais lorsqu'il s'agit de types dérivés, la désérialisation devient plus compliquée. Cet article explique comment utiliser efficacement Json.Net pour désérialiser les types dérivés.

Traitement du nom de type

Une désérialisation réussie des types dérivés nécessite que la gestion des noms de types soit activée. Ce paramètre demande à Json.Net d'inclure les noms de types dans le flux JSON sérialisé. Par défaut, la gestion des noms de types est désactivée, ce qui peut conduire à des résultats de désérialisation ambigus lorsqu'il s'agit de types dérivés.

Activer la gestion des noms de types

Pour activer la gestion des noms de types, vous pouvez spécifier JsonSerializerSettings dans un objet TypeNameHandling.All. Un exemple est le suivant :

<code class="language-csharp">JsonSerializerSettings settings = new JsonSerializerSettings { TypeNameHandling = TypeNameHandling.All };</code>

Sérialisation et désérialisation

Avec la gestion des noms de types activée, les types dérivés peuvent être sérialisés et désérialisés comme suit :

<code class="language-csharp">// 序列化
string Serialized = JsonConvert.SerializeObject(inheritanceList, settings);

// 反序列化
List<BaseClass> deserializedList = JsonConvert.DeserializeObject<List<BaseClass>>(Serialized, settings);</code>

Remarques importantes

L'activation de la gestion des noms de types peut entraîner certains problèmes :

  • Taille des données augmentée : Le flux JSON sérialisé sera plus grand car il contient désormais le nom du type.
  • Impact sur les performances : La désérialisation peut être plus lente car elle implique de comparer le nom du type aux types enregistrés disponibles.

Résumé

En activant la gestion des noms de types dans Json.Net, les types dérivés peuvent être efficacement désérialisés et leur hiérarchie d'héritage préservée. Cette fonctionnalité vous permet de gérer des structures de données complexes de manière pratique et fiable.

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!

Déclaration:
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