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

如何使用 System.Text.Json 序列化和反序列化類別欄位?

Barbara Streisand
發布: 2025-01-14 07:32:47
原創
754 人瀏覽過

How Can I Serialize and Deserialize Class Fields with System.Text.Json?

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

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