Sérialisation à l'aide des attributs d'exclusion Json.Net
Lors de la sérialisation d'objets à l'aide de Json.Net, certaines propriétés peuvent être requises lors de la désérialisation mais pas lors de la sérialisation. Cet article explore plusieurs façons de mettre en œuvre ce scénario :
Méthode 1 : Sérialisation conditionnelle
Json.Net prend en charge la méthode ShouldSerialize, qui peut contrôler la sérialisation de manière conditionnelle. Définissez la méthode ShouldSerialize pour les propriétés requises et définissez-la pour qu'elle renvoie false :
<code class="language-csharp">class Config { public Fizz ObsoleteSetting { get; set; } public bool ShouldSerializeObsoleteSetting() { return false; } }</code>
Méthode 2 : Utiliser JObject pour faire fonctionner JSON
Après avoir désérialisé l'objet en JObject, supprimez manuellement les propriétés avant de sérialiser :
<code class="language-csharp">JObject jo = JObject.FromObject(config); jo["ObsoleteSetting"].Parent.Remove(); string json = jo.ToString();</code>
Méthode 3 : Utiliser les attributs
a. Ignorer les propriétés utilisant des setters privés
Utilisez l'attribut [JsonIgnore]
pour exclure les attributs pour la sérialisation. Utilisez [JsonProperty]
pour postuler à d'autres créateurs de propriétés privées :
<code class="language-csharp">class Config { [JsonIgnore] public Fizz ObsoleteSetting { get; set; } [JsonProperty("ObsoleteSetting")] private Fizz ObsoleteSettingAlternateSetter { set { ObsoleteSetting = value; } } }</code>
b. Utilisez des setters publics pour ignorer les propriétés
Vous pouvez également utiliser un setter de propriété publique avec [JsonProperty]
et exclure son getter en utilisant [JsonIgnore]
:
<code class="language-csharp">class Config { [JsonProperty("ObsoleteSetting")] public Fizz ObsoleteSetting { set; private get; } }</code>
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!