Désérialisation sélective des attributs dans JSON.NET
Tout en conservant la compatibilité JSON, vous souhaiterez peut-être convertir les propriétés sérialisées des énumérations en classes. JSON.NET propose plusieurs façons de répondre à ce besoin :
Méthode 1 : méthode ShouldSerialize
JSON.NET fournit la méthode ShouldSerialize. Vous pouvez empêcher son inclusion en créant une méthode ShouldSerializePropertyName où PropertyName est la propriété à exclure de la sérialisation. Par exemple :
<code class="language-csharp">public class Config { public Fizz ObsoleteSetting { get; set; } public bool ShouldSerializeObsoleteSetting() { return false; // 从序列化中排除 ObsoleteSetting } }</code>
Méthode 2 : Utiliser JObject pour opérer
Au lieu d'utiliser JsonConvert.SerializeObject, convertissez l'objet Config en objet JSON (JObject), supprimez les propriétés requises et sérialisez le JObject résultant :
<code class="language-csharp">var jo = JObject.FromObject(config); jo["ObsoleteSetting"].Parent.Remove(); var json = jo.ToString();</code>
Méthode 3 : Exclusion basée sur les attributs
L'application de [JsonIgnore] à la propriété cible garantit qu'elle est exclue de la sérialisation. Cependant, pour désérialiser la propriété, créez un setter privé avec le même nom de propriété et appliquez-lui [JsonProperty]. Par exemple :
<code class="language-csharp">public class Config { [JsonIgnore] public Fizz ObsoleteSetting { get; set; } [JsonProperty("ObsoleteSetting")] private Fizz ObsoleteSettingSetter { set { ObsoleteSetting = value; } } }</code>
En employant ces technologies, vous pouvez contrôler de manière sélective la sérialisation et la désérialisation des propriétés, garantissant ainsi la compatibilité avec les configurations JSON existantes tout en s'adaptant aux modifications de propriété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!