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 :
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!