Maison > développement back-end > C++ > Comment puis-je désérialiser les propriétés au niveau de l'interface JSON dans JSON.NET ?

Comment puis-je désérialiser les propriétés au niveau de l'interface JSON dans JSON.NET ?

Barbara Streisand
Libérer: 2025-01-18 16:06:11
original
869 Les gens l'ont consulté

How Can I Deserialize JSON Interface-Level Properties in JSON.NET?

Désérialisation JSON.NET et propriétés d'interface : une solution pratique

La désérialisation des données JSON en objets C# à l'aide de JSON.NET peut présenter des difficultés lors du traitement des propriétés des types d'interface. Une erreur courante se produit : JSON.NET ne peut pas instancier directement les interfaces.

La solution réside dans l'exploitation de paramètres de classe concrets au sein du constructeur de votre classe. Cela guide JSON.NET vers les classes concrètes correctes lors de la désérialisation.

Voici un exemple :

<code class="language-csharp">public class Visit : IVisit
{
    // Constructor crucial for JSON.NET to identify concrete types for deserialization.
    public Visit(MyLocation location, Guest guest)
    {
        Location = location;
        Guest = guest;
    }

    public long VisitId { get; set; }
    public ILocation Location { get; set; }
    public DateTime VisitDate { get; set; }
    public IGuest Guest { get; set; }
}</code>
Copier après la connexion

En incluant MyLocation et Guest (classes concrètes implémentant ILocation et IGuest respectivement) dans le constructeur, JSON.NET peut mapper avec succès les données JSON aux types appropriés, surmontant ainsi le problème d'instanciation de l'interface. Cette approche permet de conserver la flexibilité des interfaces tout en assurant une désérialisation fluide.

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