Maison >développement back-end >C++ >Comment désérialiser JSON avec des clés dynamiques à l'aide de dictionnaires en C# ?

Comment désérialiser JSON avec des clés dynamiques à l'aide de dictionnaires en C# ?

Patricia Arquette
Patricia Arquetteoriginal
2025-01-07 12:47:411000parcourir

How to Deserialize JSON with Dynamic Keys Using Dictionaries in C#?

Désérialiser JSON avec des clés dynamiques à l'aide de dictionnaires

Lorsque vous travaillez avec des données JSON contenant des objets avec des noms de clés dynamiques, il devient difficile d'accéder directement aux propriétés des objets. En effet, la sérialisation d'objets typique nécessite des propriétés de classe prédéfinies.

Pour surmonter ce problème, nous pouvons utiliser un dictionnaire structure, où chaîne représente les noms de clés dynamiques et T est la classe contenant les données de l'objet. Cette approche permet une désérialisation flexible d'objets avec des propriétés variables.

class RootObject
{
    public Dictionary<string, User> users { get; set; }
}

class User
{
    public string name { get; set; }
    public string state { get; set; }
    public string id { get; set; }
}

En utilisant les classes ci-dessus et les données JSON fournies :

RootObject obj = JsonConvert.DeserializeObject<RootObject>(json);

Nous pouvons désormais accéder et parcourir les objets désérialisés. :

foreach (string key in root.users.Keys)
{
    User user = root.users[key];
    // Access user properties here
}

Sortie :

key: 10045
name: steve
state: NY
id: ebb2-92bf-3062-7774

key: 12345
name: mike
state: MA
id: fb60-b34f-6dc8-aaf7

key: 100034
name: tom
state: WA
id: cedf-c56f-18a4-4b1

En tirant parti des dictionnaires, nous pouvons désérialiser efficacement les données JSON avec des noms de clés dynamiques et accéder facilement aux propriétés des objets.

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