Maison >développement back-end >C++ >Comment puis-je désérialiser JSON avec des clés dynamiques en C# à l'aide d'un dictionnaire ?
Gestion des clés JSON dynamiques en C# avec des dictionnaires
Les données JSON présentent souvent des défis lorsqu'il s'agit de clés imprévisibles. Cet article se concentre sur un scénario courant : une clé racine statique (« quotidienne » dans cet exemple) contenant des clés dynamiques basées sur un horodatage. La solution consiste à utiliser un dictionnaire pour une désérialisation flexible.
Voici une approche robuste :
Exploitez les dictionnaires pour plus de flexibilité : Au lieu de créer une structure de classe rigide, utilisez Dictionary<string, object>
pour accueillir les clés dynamiques. Cela permet une gestion transparente des clés inconnues au moment de l'exécution.
Désérialiser avec JavaScriptSerializer
: Utilisez la classe JavaScriptSerializer
pour analyser la chaîne JSON dans un dictionnaire. Le code ci-dessous le démontre :
<code class="language-csharp"> var deserializer = new JavaScriptSerializer(); var dictionary = deserializer.Deserialize<Dictionary<string, object>>(json);</code>
Accéder au Dictionnaire Nesté : Les clés dynamiques sont imbriquées sous la clé "quotidienne". Extrayez ce dictionnaire imbriqué en utilisant :
<code class="language-csharp"> var dailyData = dictionary["daily"] as Dictionary<string, object>;</code>
Itérer et accéder aux données : Enfin, parcourez le dailyData
dictionnaire pour accéder aux horodatages dynamiques et à leurs valeurs associées :
<code class="language-csharp"> foreach (var kvp in dailyData) { string timestamp = kvp.Key; object value = kvp.Value; Console.WriteLine($"{timestamp}: {value}"); }</code>
Cette méthode fournit un moyen flexible et efficace de traiter JSON avec des clés dynamiques, garantissant un accès facile aux données sous-jacentes sans nécessiter de connaissance préalable de la structure des clés.
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!