Techniques de sérialisation et de désérialisation partielles JSON.Net
JSON.Net offre un contrôle flexible sur la sérialisation et la désérialisation. Ce guide explore les méthodes permettant d'exclure sélectivement des propriétés du processus de sérialisation.
Méthode 1 : Sérialisation conditionnelle avec ShouldSerialize
JSON.Net permet la sérialisation conditionnelle des propriétés à l'aide des méthodes ShouldSerialize
. Pour exclure une propriété, créez une méthode booléenne nommée ShouldSerialize[PropertyName]()
qui renvoie toujours false
.
Exemple :
<code class="language-csharp">class Config { public Fizz ObsoleteSetting { get; set; } public Bang ReplacementSetting { get; set; } public bool ShouldSerializeObsoleteSetting() { return false; } }</code>
Cela empêche ObsoleteSetting
d'être inclus dans le JSON sérialisé.
Méthode 2 : Manipulation JSON directe avec JObject
Pour un contrôle plus direct, utilisez JObject
pour manipuler la structure JSON avant la sérialisation :
JObject
en utilisant JObject.FromObject
.jo["ObsoleteSetting"].Parent.Remove()
.JObject
modifié.Méthode 3 : Attributs et setters privés
Cette approche combine des attributs et des setters privés pour une sérialisation partielle élégante :
[JsonIgnore]
.[JsonProperty]
sur le setter privé, en lui donnant le même nom JSON que la propriété publique.Exemple :
<code class="language-csharp">class Config { [JsonIgnore] public Fizz ObsoleteSetting { get; set; } [JsonProperty("ObsoleteSetting")] private Fizz ObsoleteSettingAlternateSetter { set { ObsoleteSetting = value; } } public Bang ReplacementSetting { get; set; } }</code>
Ceci masque efficacement ObsoleteSetting
lors de la sérialisation tout en conservant son utilisation interne. Choisissez la méthode qui correspond le mieux à vos besoins et à votre style de codage.
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!