Maison >développement back-end >C++ >Comment puis-je désérialiser JSON avec des noms de propriétés dynamiques comme identificateurs dans un objet C # fortement tapé?

Comment puis-je désérialiser JSON avec des noms de propriétés dynamiques comme identificateurs dans un objet C # fortement tapé?

Mary-Kate Olsen
Mary-Kate Olsenoriginal
2025-01-30 00:01:09864parcourir

How Can I Deserialize JSON with Dynamic Property Names as Identifiers into a Strongly Typed C# Object?

JSON a créé un objet de type C # fort avec le nom d'attribut comme identifiant

Description du problème

Lorsque vous essayez de créer un objet de type C # fort à partir des données JSON, l'auteur a rencontré le problème du traitement du nom d'attribut dans l'objet JSON. Le code existant tente d'utiliser la structure de classe en couches pour sérialiser le fichier JSON, mais le nom d'attribut (logo de session) n'est pas reconnu comme un attribut d'objet.

Solution

Afin de résoudre ce problème, l'auteur doit modifier l'objet racine dans la classe C # comme

. Ce changement permettra au nom d'attribut de l'objet JSON soit mappé comme une clé de dictionnaire.

Exemple de code Dictionary<string, SessionPerformanceStats>

ou, si le nom d'attribut dans l'objet JSON est toujours numéroté, la clé de dictionnaire peut être définie comme longue et plus en forme:

<code class="language-csharp">var dictionary = JsonConvert.DeserializeObject<Dictionary<string, SessionPerformanceStats>>(theJsonResponse);</code>

Description supplémentaire

Les objectifs de ces modifications sont de permettre la sérialisation correcte de l'objet JSON dans un dictionnaire. Cette méthode permet le nom d'attribut dans l'objet JSON en tant que clé de dictionnaire pour mapper efficacement la structure de l'objet JSON au dictionnaire C #. Cela résout le problème que l'identifiant de session n'est pas reconnu comme un attribut d'objet.
<code class="language-csharp">var dictionary = JsonConvert.DeserializeObject<Dictionary<long, SessionPerformanceStats>>(theJsonResponse);</code>

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