Maison > développement back-end > C++ > Comment puis-je conserver les clés de dictionnaire lors de la sérialisation avec Json.Net ?

Comment puis-je conserver les clés de dictionnaire lors de la sérialisation avec Json.Net ?

Linda Hamilton
Libérer: 2025-01-17 11:06:14
original
832 Les gens l'ont consulté

How Can I Preserve Dictionary Keys When Serializing with Json.Net?

Comment conserver les clés de dictionnaire dans la sérialisation Json.Net

Json.Net est une bibliothèque de sérialisation couramment utilisée, mais lors de la sérialisation d'objets contenant des dictionnaires, vous pouvez rencontrer le problème de la conservation des clés de dictionnaire.

Regardons un exemple :

<code class="language-c#">public class Test
{
    public string X { get; set; }
    public Dictionary<string, string> Y { get; set; }
}</code>
Copier après la connexion

Supposons que vous souhaitiez sérialiser cet objet au format JSON suivant :

<code class="language-json">{
    "X" : "value",
    "key1": "value1",
    "key2": "value2"
}</code>
Copier après la connexion

Ici, les clés du dictionnaire ("key1" et "key2") doivent être explicitement incluses dans la sortie JSON.

Utilisez l'attribut JsonExtensionData pour conserver le dictionnaire

Si vous utilisez Json.Net 5.0.5 ou supérieur, il existe une solution simple. Un dictionnaire peut être promu dans le cadre de la représentation sérialisée de l'objet parent en utilisant l'attribut [JsonExtensionData]. Appliquez simplement les attributs aux attributs du dictionnaire :

<code class="language-c#">public class Test
{
    public string X { get; set; }

    [JsonExtensionData]
    public Dictionary<string, object> Y { get; set; }
}</code>
Copier après la connexion

Avec cet ajustement, les paires clé-valeur du dictionnaire seront intégrées de manière transparente dans la représentation JSON de l'objet parent. De plus, ce mécanisme fonctionne dans les deux sens, permettant à d'autres propriétés JSON qui ne correspondent pas directement aux membres de la classe d'être désérialisées dans un dictionnaire.

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