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

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

Mary-Kate Olsen
發布: 2025-01-14 06:21:44
原創
700 人瀏覽過

How to Serialize Class Fields Using System.Text.Json in .NET?

System.Text.Json 中類別字段的序列化

.NET Core 3 中的 System.Text.Json 引入了物件序列化和反序列化的支援。但是,嘗試使用此庫序列化類別欄位時,通常會出現一個問題。

考慮以下範例:

<code>public class Car
{
    public int Year { get; set; } // 正确序列化
    public string Model; // 未序列化
}</code>
登入後複製

嘗試序列化 Car 實例時,產生的 JSON 字串中不包含 Model 等欄位。這是因為 .NET Core 3 中的 System.Text.Json 不支援序列化欄位。

在 .NET 5 及更高版本中,System.Text.Json 具備了序列化欄位的能力。這可以透過啟用欄位支援或手動標記要序列化的欄位來實現。

啟用欄位序列化

序列化時,您可以將 JsonSerializerOptions.IncludeFields 屬性設為 true 來啟用欄位序列化:

<code>Car car = new Car { Model = "Fit", Year = 2008 };

// 启用字段序列化
var options = new JsonSerializerOptions { IncludeFields = true };

// 传递 "options" 进行序列化
var json = JsonSerializer.Serialize(car, options);</code>
登入後複製

標記要序列化的欄位

或者,您可以使用 [JsonInclude] 屬性標記要序列化的各個欄位:

<code>[JsonInclude]
public string Model;</code>
登入後複製

兩種方法的範例

<code>public class Car
{
    public int Year { get; set; } // 正确序列化

    [JsonInclude]
    public string Model;
}

// 或

Car car = new Car { Model = "Fit", Year = 2008 };

var options = new JsonSerializerOptions { IncludeFields = true };

var json = JsonSerializer.Serialize(car, options);</code>
登入後複製

透過實作這些技術,您可以確保序列化和反序列化的物件具有完全相同的值,包括類別欄位中的值。

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

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