使用System.Text.Json序列化與反序列化欄位
在.NET Core 3.x中,System.Text.Json存在一個限制:不支援欄位的序列化和反序列化。如果一個類別需要基於字段的變量,這就會帶來挑戰。
解決此問題,有兩種方法:
對於.NET Core 3.x:
不幸的是,.NET Core 3.x不支援欄位。如文件中所述,可以使用自訂轉換器來實現此功能。但是,這需要實現手動轉換過程。
對於.NET 5及更高版本:
在.NET 5及更高版本中,可以使用System.Text.Json序列化和反序列化公共欄位。實現此目標有兩種方法:
透過將JsonSerializerOptions.IncludeFields設為true來啟用欄位序列化。
<code class="language-csharp">var options = new JsonSerializerOptions { IncludeFields = true }; var json = JsonSerializer.Serialize(car, options); var carDeserialized = JsonSerializer.Deserialize<Car>(json, options);</code>
或者,使用[JsonInclude]屬性來標記要序列化的特定欄位。
<code class="language-csharp">public class Car { [JsonInclude] public string Model; }</code>
透過應用這些技術,您可以確保類別欄位正確地序列化和反序列化,從而在物件之間準確地保存資料。
以上是如何在 .NET 中使用 System.Text.Json 序列化和反序列化欄位?的詳細內容。更多資訊請關注PHP中文網其他相關文章!