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!