使用 System.Text.Json 序列化和反序列化類別欄位
.NET Core 3.x 版本的 System.Text.Json 本身並不支援類別欄位的序列化和反序列化。對於大量依賴欄位進行資料儲存的類別來說,這可能是個問題。
為了解決這個問題,System.Text.Json 根據 .NET 的版本提供了兩種不同的方法:
.NET Core 3.x
不幸的是,在 .NET Core 3.x 中,System.Text.Json 不支援欄位。要克服此限制,您需要建立自訂轉換器來處理欄位的序列化和反序列化。
.NET 5 及更高版本
從 .NET 5 開始,可以透過將 JsonSerializerOptions.IncludeFields 屬性設為 true 來序列化公用欄位。或者,您可以使用 [JsonInclude] 屬性明確標記要序列化的欄位。例如下:
<code class="language-csharp">using System.Text.Json; public class Car { public int Year { get; set; } [JsonInclude] public string Model; } static void SerializeWithFields() { var car = new Car { Model = "Fit", Year = 2008 }; var options = new JsonSerializerOptions { IncludeFields = true }; var json = JsonSerializer.Serialize(car, options); Console.WriteLine(json); // {"Model": "Fit", "Year": 2008} }</code>
透過利用這些技術,您可以確保您的類別可以使用 System.Text.Json 有效地進行序列化和反序列化,即使是在處理類別欄位時也是如此。
以上是如何使用 System.Text.Json 序列化和反序列化類別欄位?的詳細內容。更多資訊請關注PHP中文網其他相關文章!