Maison > développement back-end > C++ > Comment puis-je désérialiser un objet JSON avec des ID numériques sous forme de touches dans un objet C # fortement tapé?

Comment puis-je désérialiser un objet JSON avec des ID numériques sous forme de touches dans un objet C # fortement tapé?

Susan Sarandon
Libérer: 2025-01-30 00:12:09
original
644 Les gens l'ont consulté

How Can I Deserialize a JSON Object with Numeric IDs as Keys into a Strongly Typed C# Object?

a converti l'objet JSON avec ID comme nom en un type fort C # objet

Lorsque l'objet JSON avec une clé d'ID numérique est sérialisé dans un objet de type C # fort, il rencontrera des défis. Considérez la réponse JSON suivante:

Afin de créer un objet de type fort, vous avez défini les classes de "PollsandSurveySstatistics", "atmenstatistics" et "SessionPerformancestats". Cependant, le problème est la structure supérieure de votre objet C # "webinarperformancestats".
<code>{
    "5234592":{
    "pollsAndSurveys":{
        ...
    },
    "attendance":{
        ...
    }
    },
    "5235291":{
    "pollsAndSurveys":{
        ...
    },
    "attendance":{
        ...
    }
    }
}</code>
Copier après la connexion

Afin de résoudre ce problème, veuillez convertir l'objet racine en C # en dictionnaire:

Cette méthode permet à JSON.net de séquencer l'objet JSON dans un dictionnaire, où le numéro d'identification est utilisé comme clé. Afin d'assurer le type de traitement correct, vous pouvez affiner la déclaration comme suit:
<code class="language-csharp">var dictionary = JsonConvert.DeserializeObject<Dictionary<long, SessionPerformanceStats>>(theJsonResponse);</code>
Copier après la connexion
Copier après la connexion

Cette modification garantit que la clé ID est expliquée comme un entier long. En utilisant le dictionnaire comme objet racine, vous pouvez utiliser la touche ID pour accéder aux statistiques de performance de session.
<code class="language-csharp">var dictionary = JsonConvert.DeserializeObject<Dictionary<long, SessionPerformanceStats>>(theJsonResponse);</code>
Copier après la connexion
Copier après la connexion

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