Gestion flexible de la désérialisation JSON avec des clés dynamiques à l'aide de dictionnaires
Dans le monde JSON, rencontrer des chaînes JSON avec des clés racine dynamiques et imprévisibles peut présenter des défis lors de la désérialisation en objets. Voici comment résoudre ce problème à l'aide des méthodes du dictionnaire.
Par exemple, considérons la chaîne JSON suivante :
<code>{ "daily": { "1337990400000": 443447, "1338076800000": 444693, "1338163200000": 452282, "1338249600000": 462189, "1338336000000": 466626 } }</code>
Les clés étant dynamiques, utiliser un JavascriptSerializer avec une structure de classe n'est pas suffisant ici. Une solution plus flexible consiste à désérialiser la chaîne JSON dans un dictionnaire, ce qui nous permet d'accéder facilement aux clés dynamiques et à leurs valeurs correspondantes.
<code class="language-csharp">var deser = new JavaScriptSerializer().Deserialize<Dictionary<string, Dictionary<string, int>>>(val);</code>
Cette ligne crée un dictionnaire deser où les clés sont des chaînes et les valeurs sont des dictionnaires avec des clés de chaîne et des valeurs entières. Il mappe efficacement les clés dynamiques d'une chaîne JSON à un dictionnaire intermédiaire.
Pour accéder à des données spécifiques, nous pouvons utiliser le code suivant :
<code class="language-csharp">var justDaily = deser["daily"];</code>
La variable justDaily contient désormais un dictionnaire représentant l'objet "quotidien" à partir d'une chaîne JSON. Nous pouvons parcourir ses clés et valeurs pour extraire les clés dynamiques et les valeurs correspondantes.
<code class="language-csharp">foreach (string key in justDaily.Keys) Console.WriteLine(key + ": " + justDaily[key]);</code>
Cette approche nous permet de gérer des chaînes JSON avec des clés racine dynamiques en les convertissant en structures de dictionnaire et offre une flexibilité lors de l'accès aux données. Vous pouvez profiter pleinement de la puissance des dictionnaires pour désérialiser facilement JSON même si les clés sont imprévisibles.
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!