Maison > développement back-end > C++ > Comment puis-je désérialiser JSON avec des champs connus et inconnus en C# ?

Comment puis-je désérialiser JSON avec des champs connus et inconnus en C# ?

Linda Hamilton
Libérer: 2025-01-18 09:17:10
original
156 Les gens l'ont consulté

How Can I Deserialize JSON with Both Known and Unknown Fields in C#?

Désérialisation JSON des champs connus et inconnus en C#

Lorsque le résultat JSON contient des champs connus et inconnus, il est généralement nécessaire de mapper les champs inconnus dans un dictionnaire pour un accès et une modification faciles. Bien qu'il existe plusieurs façons d'y parvenir, l'utilisation de JsonExtensionDataAttribute dans JSON .NET constitue une solution pratique.

L'attribut

JsonExtensionDataAttribute vous permet de spécifier un attribut pour contenir des champs inconnus supplémentaires. Un exemple est le suivant :

<code class="language-csharp">public class Product
{
    public string id { get; set; }
    public string name { get; set; }

    [JsonExtensionData]
    private IDictionary<string, JToken> _extraFields;
}</code>
Copier après la connexion

En utilisant cet attribut, les champs inconnus seront stockés dans l'attribut _extraFields, qui est un dictionnaire de clés de chaîne (noms de champs) et de valeurs JToken (valeurs de champ). Cela vous permet d'accéder et de modifier facilement les champs inconnus dans votre code.

Veuillez noter que cette méthode nécessite JSON .NET v5 version 5 ou supérieure. Si vous utilisez une version antérieure, vous souhaiterez peut-être explorer d'autres options mentionnées dans l'article d'origine, telles que l'utilisation d'un analyseur de contrat personnalisé ou d'un convertisseur personnalisé.

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