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

Comment désérialiser JSON avec des clés dynamiques en C# ?

Barbara Streisand
Libérer: 2025-01-07 12:51:45
original
235 Les gens l'ont consulté

How to Deserialize JSON with Dynamic Keys in C#?

Clés dynamiques dans la désérialisation JSON

Lorsque vous traitez des données JSON contenant des clés dynamiques, l'accès aux propriétés des objets peut être difficile. Considérez les données suivantes :

{
    "users" : {
        "100034" : {
            "name"  : "tom",
            "state" : "WA",
            "id"    : "cedf-c56f-18a4-4b1"
        },
        "10045" : {
            "name"  : "steve",
            "state" : "NY",
            "id"    : "ebb2-92bf-3062-7774"
        },
        "12345" : {
            "name"  : "mike",
            "state" : "MA",
            "id"    : "fb60-b34f-6dc8-aaf7"
        }
    }
}
Copier après la connexion

Dans cet objet JSON, les clés sont des chaînes numériques, ce qui rend difficile la définition de classes avec des noms de propriétés statiques. Pour résoudre ce problème, nous pouvons exploiter la propriété Dictionary tapez en C#, où T représente la classe de nos données d'élément.

Structure de classe et désérialisation

Nous définissons les classes suivantes :

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

Ensuite, nous pouvons désérialiser les données JSON comme ceci :

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

Cela crée une instance RootObject avec un Dictionnaire utilisateurs nommés.

Accès aux propriétés de l'objet

Nous pouvons désormais accéder aux propriétés de l'objet à l'aide des touches du dictionnaire. Le code suivant parcourt les utilisateurs :

foreach (string key in root.users.Keys)
{
    User user = root.users[key];
    // Access properties using user.name, user.state, etc.
}
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

Cette approche nous permet de désérialiser les données JSON avec des clés dynamiques et d'accéder aux propriétés des objets de manière transparente.

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