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
Libérer: 2025-01-07 12:47:41
original
1004 Les gens l'ont consulté

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

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

RootObject obj = JsonConvert.DeserializeObject<RootObject>(json);
Copier après la connexion

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

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

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!

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