Maison >développement back-end >C++ >Comment désérialiser JSON avec des clés d'objet enfant dynamiques en C# ?
Désérialiser des objets enfants avec des clés dynamiques
Dans certains scénarios, vous pouvez rencontrer des données JSON avec des clés dynamiques pour des objets enfants. Pour désérialiser efficacement ces données, envisagez d'utiliser des dictionnaires au lieu des classes traditionnelles.
Utiliser des dictionnaires pour la désérialisation
Au lieu de créer une classe traditionnelle pour chaque objet enfant, vous pouvez utiliser un dictionnaire
Définition des classes
Pour cet exemple, définissez les classes comme suit :
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; } }
Désérialiser le JSON Données
Pour désérialiser les données JSON dans votre classe RootObject, utilisez le code suivant :
RootObject obj = JsonConvert.DeserializeObject<RootObject>(json);
Accès aux objets enfants
Une fois désérialisé, vous pouvez accéder aux objets enfants directement via le dictionnaire clé :
foreach (string key in root.users.Keys) { User user = root.users[key]; Console.WriteLine($"key: {key}"); Console.WriteLine($"name: {user.name}"); Console.WriteLine($"state: {user.state}"); Console.WriteLine($"id: {user.id}"); Console.WriteLine(); }
Exemple
Considérez les données JSON 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" } } }
À l'aide du code fourni, vous pouvez désérialiser les données et accéder à chaque objet enfant, ce qui donne le résultat suivant :
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
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!