Comment exclure les attributs de sérialisation JSON en C#
Lors de la sérialisation d'un objet en JSON, il est souvent nécessaire d'exclure certaines propriétés pour réduire la taille des données sérialisées ou pour préserver la confidentialité. Cet article explore deux méthodes courantes pour exclure la sérialisation JSON des propriétés publiques.
Méthode 1 : Utiliser l'attribut [JsonIgnore]
Si vous utilisez la populaire bibliothèque Json.Net, l'attribut [JsonIgnore] fournit un moyen direct d'exclure des propriétés. En annotant une propriété avec cet attribut, vous pouvez demander au sérialiseur de l'ignorer lors de la sérialisation et de la désérialisation.
Par exemple :
<code class="language-csharp">public class Car { // 包含在 JSON 中 public string Model { get; set; } public DateTime Year { get; set; } public List<string> Features { get; set; } // 排除 [JsonIgnore] public DateTime LastModified { get; set; } }</code>
Méthode 2 : Utiliser les propriétés DataContract et DataMember
Vous pouvez également utiliser les propriétés DataContract et DataMember fournies par l'espace de noms System.Runtime.Serialization. L'attribut DataContract marque la classe comme sérialisable et l'attribut DataMember spécifie les propriétés à inclure.
<code class="language-csharp">[DataContract] public class Computer { // 包含在 JSON 中 [DataMember] public string Name { get; set; } [DataMember] public decimal SalePrice { get; set; } // 排除 public string Manufacture { get; set; } public int StockCount { get; set; } public decimal WholeSalePrice { get; set; } public DateTime NextShipmentDate { get; set; } }</code>
Explication détaillée
Les deux méthodes fonctionnent en manipulant le processus de sérialisation. L'attribut [JsonIgnore] demande au sérialiseur Json.Net d'ignorer les propriétés annotées, tandis que l'attribut DataMember spécifie explicitement les propriétés à sérialiser.
Bien que l'attribut [JsonIgnore] soit plus facile à utiliser, les attributs DataContract et DataMember offrent plus de contrôle sur la sérialisation et la désérialisation. Ils vous permettent également de contrôler d'autres aspects de la sérialisation, tels que le nom de la propriété et le format de sérialisation.
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!