Maison >développement back-end >C++ >Comment désérialiser JSON avec des clés dynamiques dans une liste d'objets C# ?

Comment désérialiser JSON avec des clés dynamiques dans une liste d'objets C# ?

Patricia Arquette
Patricia Arquetteoriginal
2025-01-19 19:23:08516parcourir

How to Deserialize JSON with Dynamic Keys into a C# List of Objects?

Désérialisation JSON de clé dynamique en C#

Dans certains cas, une requête Web peut renvoyer une réponse JSON avec des clés dynamiques, ce qui crée des défis lors de la désérialisation vers un objet C#. Par exemple, considérons la réponse JSON suivante :

<code>{
"nasdaq_imbalance": 
{
    "name": "nasdaq_imbalance", 
    "group": "Market Data", 
    "description": null
},
"DXOpen IM": 
{
    "name": "DXOpen IM", 
    "group": "Daily",
    "description": null
}, 
"Float Shares": 
{
    "name": "Float Shares", 
    "group": "Daily", 
    "description": null
}, 
}</code>

Le but est de désérialiser ce JSON en une liste d'objets C# de type :

<code>public class Dataset    {
    public string name { get; set; } 
    public string group { get; set; } 
    public string description { get; set; } 
}</code>

Pour ce faire, nous pouvons exploiter la puissance de Json.NET. L'extrait de code suivant montre comment :

<code class="language-csharp">Dictionary<string, Dataset> datasets = JsonConvert.DeserializeObject<Dictionary<string, Dataset>>(json);</code>

Cette ligne de code désérialise JSON dans un dictionnaire où les clés sont des clés dynamiques dans la réponse JSON (par exemple "nasdaq_imbalance", "DXOpen IM", etc.) et les valeurs sont des instances de la classe Dataset.

À partir de ce dictionnaire, vous pouvez facilement accéder aux ensembles de données via leurs clés dynamiques et les utiliser selon vos besoins. Par exemple, pour accéder à l'ensemble de données avec la clé "nasdaq_imbalance" :

<code class="language-csharp">Dataset nasdaqImbalanceDataset = datasets["nasdaq_imbalance"];</code>

Gardez à l'esprit que cette solution ne fonctionne que si les clés dynamiques sont connues à l'avance. Si les clés peuvent changer de manière dynamique, une approche plus complexe peut être nécessaire.

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