Maison >développement back-end >C++ >Comment puis-je désérialiser JSON avec des clés dynamiques en C# ?
Gestion de la désérialisation JSON des clés dynamiques en C#
Lors du traitement des données JSON, la rencontre de clés dynamiques peut entraîner des problèmes de désérialisation. Considérez la chaîne JSON suivante :
<code class="language-json">{ "daily": { "1337990400000": 443447, "1338076800000": 444693, "1338163200000": 452282, "1338249600000": 462189, "1338336000000": 466626 } }</code>
Dans cette chaîne, la clé "quotidienne" est statique, mais la clé sous-jacente est dynamique et ne peut pas être prédite lors de la désérialisation. Pour résoudre ce problème, nous pouvons profiter de la puissance des objets dynamiques.
En utilisant la classe JavaScriptSerializer
, nous pouvons créer un objet dynamique comme indiqué ci-dessous :
<code class="language-csharp">dynamic deser = new JavaScriptSerializer().Deserialize<dynamic>(val);</code>
Cette désérialisation créera un objet dynamique deser
qui pourra accéder aux propriétés JSON. Pour accéder aux données quotidiennes, nous pouvons utiliser la déclaration suivante :
<code class="language-csharp">dynamic justDaily = deser["daily"];</code>L'objet
justDaily
représente désormais les données quotidiennes et ses clés dynamiques sont accessibles. Pour parcourir les clés et leurs valeurs nous pouvons utiliser le code suivant :
<code class="language-csharp">foreach (string key in justDaily.Keys) Console.WriteLine(key + ": " + justDaily[key]);</code>
Cela affichera les clés dynamiques et leurs valeurs correspondantes. En utilisant des objets dynamiques, nous pouvons désérialiser efficacement les données JSON même lorsque des clés dynamiques sont rencontrées.
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!