首頁 > 後端開發 > C++ > 如何在 C# 中從 JSON 序列化中排除屬性?

如何在 C# 中從 JSON 序列化中排除屬性?

Barbara Streisand
發布: 2025-01-23 16:48:10
原創
173 人瀏覽過

How to Exclude Properties from JSON Serialization in C#?

C# 中排除 JSON 序列化屬性的方法

在將物件序列化為 JSON 時,通常需要排除某些屬性以減小序列化資料的規模或維護隱私。本文將探討使用兩種常用方法來排除公共屬性的 JSON 序列化的方法。

方法一:使用 [JsonIgnore] 屬性

如果您使用的是流行的 Json.Net 庫,則 [JsonIgnore] 屬性提供了一種直接排除屬性的方法。透過使用此屬性註釋屬性,您可以指示序列化程序在序列化和反序列化過程中都忽略它。

例如:

<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>
登入後複製

方法二:使用 DataContract 和 DataMember 屬性

或者,您可以使用 System.Runtime.Serialization 命名空間提供的 DataContract 和 DataMember 屬性。 DataContract 屬性將類別標記為可進行序列化的,而 DataMember 屬性則指定要包含的屬性。

<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>
登入後複製

詳細解釋

這兩種方法都是透過操作序列化過程來運作的。 [JsonIgnore] 屬性指示 Json.Net 序列化程式跳過註解的屬性,而 DataMember 屬性則明確指定要序列化的屬性。

雖然 [JsonIgnore] 屬性更容易使用,但 DataContract 和 DataMember 屬性提供了對序列化和反序列化的更多控制。它們還允許您控制序列化的其他方面,例如屬性的名稱和序列化格式。

以上是如何在 C# 中從 JSON 序列化中排除屬性?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
作者最新文章
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板