Maison > développement back-end > C++ > Comment puis-je aplatir les dictionnaires dans la sérialisation JSON à l'aide de Json.Net ?

Comment puis-je aplatir les dictionnaires dans la sérialisation JSON à l'aide de Json.Net ?

Linda Hamilton
Libérer: 2025-01-17 11:16:13
original
908 Les gens l'ont consulté

How Can I Flatten Dictionaries in JSON Serialization Using Json.Net?

Utiliser Json.Net pour aplatir les dictionnaires dans la sérialisation JSON

Dans la sérialisation d'objets, il est parfois nécessaire d'aplatir le dictionnaire dans la représentation JSON de l'objet parent. Dans Json.Net, une classe contenant un dictionnaire illustre bien cela :

<code>public class Test
{
    public string X { get; set; }

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

Le but est de sérialiser l'objet dans le JSON suivant :

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

Dans Json.Net 5.0.5 et supérieur, cela peut être réalisé en utilisant l'attribut [JsonExtensionData] sur l'attribut dictionnaire :

<code>public class Test
{
    public string X { get; set; }

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

Avec ce changement, les clés et valeurs du dictionnaire seront sérialisées dans le cadre de l'objet parent. Cette fonctionnalité est bidirectionnelle ; toutes les propriétés JSON qui ne correspondent pas aux membres de la classe seront stockées dans le dictionnaire lors de la désérialisation. Cette approche simplifie la sérialisation et la désérialisation des objets contenant des dictionnaires imbriqués.

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