Heim >Backend-Entwicklung >C++ >Wie schließe ich Eigenschaften von der JSON-Serialisierung in C# aus?

Wie schließe ich Eigenschaften von der JSON-Serialisierung in C# aus?

Barbara Streisand
Barbara StreisandOriginal
2025-01-23 16:48:10174Durchsuche

How to Exclude Properties from JSON Serialization in C#?

So schließen Sie JSON-Serialisierungsattribute in C# aus

Beim Serialisieren eines Objekts in JSON ist es oft notwendig, bestimmte Eigenschaften auszuschließen, um die Größe der serialisierten Daten zu reduzieren oder den Datenschutz zu wahren. In diesem Artikel werden zwei gängige Methoden zum Ausschluss der JSON-Serialisierung öffentlicher Eigenschaften untersucht.

Methode 1: Verwenden Sie das [JsonIgnore]-Attribut

Wenn Sie die beliebte Json.Net-Bibliothek verwenden, bietet das Attribut [JsonIgnore] eine direkte Möglichkeit, Eigenschaften auszuschließen. Indem Sie eine Eigenschaft mit diesem Attribut versehen, können Sie den Serialisierer anweisen, sie sowohl bei der Serialisierung als auch bei der Deserialisierung zu ignorieren.

Zum Beispiel:

<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>

Methode 2: Verwenden Sie die Eigenschaften DataContract und DataMember

Alternativ können Sie die Eigenschaften DataContract und DataMember verwenden, die vom System.Runtime.Serialization-Namespace bereitgestellt werden. Das DataContract-Attribut markiert die Klasse als serialisierbar und das DataMember-Attribut gibt die einzuschließenden Eigenschaften an.

<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>

Ausführliche Erklärung

Beide Methoden funktionieren durch Manipulation des Serialisierungsprozesses. Das [JsonIgnore]-Attribut weist den Json.Net-Serializer an, mit Anmerkungen versehene Eigenschaften zu überspringen, während das DataMember-Attribut explizit angibt, welche Eigenschaften serialisiert werden sollen.

Während das Attribut [JsonIgnore] einfacher zu verwenden ist, bieten die Attribute DataContract und DataMember mehr Kontrolle über die Serialisierung und Deserialisierung. Sie ermöglichen Ihnen auch die Steuerung anderer Aspekte der Serialisierung, beispielsweise des Namens der Eigenschaft und des Serialisierungsformats.

Das obige ist der detaillierte Inhalt vonWie schließe ich Eigenschaften von der JSON-Serialisierung in C# aus?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn