Maison > développement back-end > C++ > Comment exclure des propriétés de la sérialisation JSON en C# ?

Comment exclure des propriétés de la sérialisation JSON en C# ?

Barbara Streisand
Libérer: 2025-01-23 16:48:10
original
225 Les gens l'ont consulté

How to Exclude Properties from JSON Serialization in C#?

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>
Copier après la connexion

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>
Copier après la connexion

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!

source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal