首頁 >後端開發 >C++ >如何在 .NET 中使用 System.Text.Json 序列化和反序列化欄位?

如何在 .NET 中使用 System.Text.Json 序列化和反序列化欄位?

Mary-Kate Olsen
Mary-Kate Olsen原創
2025-01-14 07:04:411001瀏覽

How to Serialize and Deserialize Fields with System.Text.Json in .NET?

使用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序列化和反序列化公共欄位。實現此目標有兩種方法:

  1. JsonSerializerOptions

透過將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>
  1. [JsonInclude] 屬性

或者,使用[JsonInclude]屬性來標記要序列化的特定欄位。

<code class="language-csharp">public class Car
{
    [JsonInclude]
    public string Model;
}</code>

透過應用這些技術,您可以確保類別欄位正確地序列化和反序列化,從而在物件之間準確地保存資料。

以上是如何在 .NET 中使用 System.Text.Json 序列化和反序列化欄位?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn