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

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

Linda Hamilton
Linda Hamiltonoriginal
2025-01-19 19:27:11126parcourir

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

Désérialisation JSON gérant les clés dynamiques en C#

Lors de la réception de réponses JSON avec des clés dynamiques, une tâche courante consiste à les désérialiser en une liste d'objets en C#. Considérons un scénario où la réponse JSON contient le contenu suivant :

<code class="language-json">{
"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>

Gérer la désérialisation des clés dynamiques

Afin de désérialiser ce JSON en une liste d'objets, vous pouvez suivre les étapes suivantes :

  1. Désérialisez JSON en Dictionary<string, Dataset> à l'aide de Json.NET.
  2. Parcourez le dictionnaire pour remplir la liste des Dataset objets.

Ce qui suit est un exemple de code :

<code class="language-csharp">using Newtonsoft.Json;
using System.Collections.Generic;

// ...

var jsonObject = JsonConvert.DeserializeObject<Dictionary<string, Dataset>>(json);
var datasetList = new List<Dataset>();

foreach (var item in jsonObject)
{
    datasetList.Add(item.Value);
}</code>

Ce code créera une Dataset liste d'objets contenant les valeurs des clés dynamiques dans la réponse JSON. La liste résultante sera :

<code>datasetList[0].name = "nasdaq_imbalance"
datasetList[0].group = "Market Data"

datasetList[1].name = "DXOpen IM"
datasetList[1].group = "Daily"

datasetList[2].name = "Float Shares"
datasetList[2].group = "Daily"</code>

Veuillez noter que cette méthode suppose que la classe Dataset est définie et contient les propriétés name et group. Vous devez ajuster le code en fonction de votre Dataset structure de classe réelle.

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