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
Linda Hamiltonoriginal
2025-01-17 11:16:13910parcourir

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>

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

<code>{
    "X" : "value",
    "key1": "value1",
    "key2": "value2"
}</code>

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>

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!

Déclaration:
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