Maison > développement back-end > C++ > Comment gérer gracieusement les données manquantes lors de la désérialisation de JSON à C # à l'aide de JSON.net?

Comment gérer gracieusement les données manquantes lors de la désérialisation de JSON à C # à l'aide de JSON.net?

Susan Sarandon
Libérer: 2025-01-26 16:26:12
original
460 Les gens l'ont consulté

How to Gracefully Handle Missing Data When Deserializing JSON to C# Using JSON.NET?

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

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

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!

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