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>
Supposons que vous souhaitiez sérialiser cet objet au format JSON suivant :
<code class="language-json">{ "X" : "value", "key1": "value1", "key2": "value2" }</code>
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>
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!