JSON.NET : sérialiser le dictionnaire dans les propriétés de l'objet parent
Lors de la sérialisation avec JSON.NET, une question courante est de savoir comment sérialiser des objets avec des propriétés de dictionnaire. Par défaut, JSON.NET ne sérialise pas les dictionnaires dans le cadre de l'objet parent, choisissant plutôt de les ignorer. Pour résoudre ce problème, nous allons explorer une solution permettant l'inclusion de propriétés de dictionnaire dans la représentation JSON de l'objet parent.
Considérons une classe qui contient une propriété de chaîne et une propriété de dictionnaire :
<code>public class Test { public string X { get; set; } public Dictionary<string, string> Y { get; set; } }</code>
Le format de sortie JSON que nous attendons est le suivant, avec les attributs du dictionnaire ("key1" et "key2") imbriqués directement dans l'objet parent :
<code>{ "X": "value", "key1": "value1", "key2": "value2" }</code>
Pour obtenir ce résultat, nous pouvons utiliser JSON.NET 5.0.5 ou supérieur et modifier l'attribut du dictionnaire comme suit :
<code>[JsonExtensionData] public Dictionary<string, object> Y { get; set; }</code>
En appliquant l'attribut [JsonExtensionData]
à une propriété de dictionnaire, nous demandons à JSON.NET de sérialiser les clés et les valeurs du dictionnaire dans le cadre de l'objet parent. De plus, ce mécanisme prend en charge la désérialisation, garantissant que toutes les propriétés JSON qui ne correspondent pas aux membres de la classe sont stockées dans le dictionnaire de données étendu.
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!