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中文網其他相關文章!