Désérialiser des données JSON en C# à l'aide de JSON.NET : gestion des structures JSON incomplètes
Lorsque vous traitez des données JSON et des classes C#, vous rencontrez souvent des structures JSON qui peuvent ne pas contenir toutes les propriétés définies dans la classe C#. La désérialisation de ces données JSON à l'aide de JSON.NET nécessite un moyen puissant de gérer efficacement les données manquantes.
Json.NET fournit une solution pratique à ce problème. En tirant parti de ses fonctionnalités avancées, vous pouvez désérialiser les données JSON en classes C# tout en gérant de manière transparente les propriétés manquantes.
Créer une classe C# à partir de JSON
Tout d'abord, utilisez un outil en ligne comme JSON2CSharp.com pour générer une classe C# à partir de la structure JSON. Cela créera un ensemble de classes C# qui représentent avec précision la structure de données JSON.
Désérialiser les données JSON
Une fois que vous avez les classes C#, vous pouvez utiliser la classe JsonConvert fournie par JSON.NET pour désérialiser les données JSON dans ces classes. Le code suivant le démontre :
<code class="language-csharp">var myJson = @"{ ""givenname"": ""Robert"", ""passwordexpired"": ""20091031041550Z"", ""accountstatus"": [""active""], ""accountstatusexpiration"": [""20100612000000Z""], ""employeeid"": [""999777666""], ""sn"": [""Johnson""] }"; var rootObject = JsonConvert.DeserializeObject<rootobject>(myJson);</code>
En utilisant JsonConvert.DeserializeObject, vous pouvez désérialiser les données JSON directement dans une instance de la classe RootObject. Cet objet contiendra toutes les propriétés présentes dans les données JSON.
Gestion des données manquantes
Lorsqu'il manque des attributs dans les données JSON, Json.NET attribuera automatiquement des valeurs par défaut aux attributs correspondants dans la classe C#. Par exemple, si la propriété d'affiliation est absente des données JSON, la propriété Affiliation dans RootObject sera initialisée sur un tableau vide.
Valeur par défaut personnalisée
Si nécessaire, vous pouvez personnaliser la valeur par défaut attribuée à un attribut manquant à l'aide de l'attribut DefaultValueAttribute, comme indiqué ci-dessous :
<code class="language-csharp">[DefaultValue("N/A")] public string Affiliation { get; set; }</code>
Conclusion
En utilisant JSON.NET et les méthodes recommandées, la désérialisation des données JSON en classes C# devient un processus simple et puissant, même en gérant les données manquantes avec élégance. Cela permet un échange de données efficace et efficient entre différents systèmes et applications.
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!