Maison > développement back-end > C++ > Comment désérialiser JSON avec des clés dynamiques dans un objet C# à l'aide de Json.NET ?

Comment désérialiser JSON avec des clés dynamiques dans un objet C# à l'aide de Json.NET ?

Mary-Kate Olsen
Libérer: 2025-01-19 19:31:09
original
971 Les gens l'ont consulté

How to Deserialize JSON with Dynamic Keys into a C# Object Using Json.NET?

Gestion de la désérialisation JSON des clés dynamiques en C#

Lors de la réception d'une réponse JSON avec des clés dynamiques, la désérialiser en un objet C# avec un modèle de données prédéfini peut s'avérer délicat. Cet article traite d'un scénario spécifique dans lequel la réponse JSON contient des objets avec des clés dynamiques.

La réponse JSON suivante illustre le problème :

<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>
Copier après la connexion

L'objectif est de désérialiser ce JSON en une liste d'objets Dataset avec des propriétés de nom, de groupe et de description.

Solution : Utilisez Json.NET et le dictionnaire

Json.NET fournit une solution pour désérialiser JSON avec des clés dynamiques vers des objets C#. En utilisant JsonConvert.DeserializeObject<Dictionary<string, Dataset>>(json), vous pouvez désérialiser JSON dans un dictionnaire où les clés sont des clés dynamiques de la réponse JSON et les valeurs sont des objets Dataset.

Le code suivant illustre cette solution :

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

...

// 将JSON反序列化到一个包含动态键和Dataset对象的字典中
var 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
}, 
}";
var datasetDictionary = JsonConvert.DeserializeObject<Dictionary<string, Dataset>>(json);

// 使用动态键作为字典键访问Dataset对象
foreach (var dataset in datasetDictionary.Values)
{
    Console.WriteLine($"Dataset: {dataset.name}, Group: {dataset.group}, Description: {dataset.description}");
}</code>
Copier après la connexion

Cette solution vous permet de désérialiser JSON avec des clés dynamiques vers un objet C# tout en préservant la structure clé-valeur d'origine.

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!

source:php.cn
Déclaration de ce site Web
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
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal