Rumah > pembangunan bahagian belakang > C++ > Bagaimana untuk Mensiri Medan Kelas Menggunakan System.Text.Json dalam .NET?

Bagaimana untuk Mensiri Medan Kelas Menggunakan System.Text.Json dalam .NET?

Mary-Kate Olsen
Lepaskan: 2025-01-14 06:21:44
asal
698 orang telah melayarinya

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

Sirikan medan kelas dalam System.Text.Json

System.Text.Json dalam .NET Core 3 memperkenalkan sokongan untuk pensirilan objek dan penyahsirilan. Walau bagaimanapun, masalah sering timbul apabila cuba mensiri medan kelas menggunakan perpustakaan ini.

Pertimbangkan contoh berikut:

<code>public class Car
{
    public int Year { get; set; } // 正确序列化
    public string Model; // 未序列化
}</code>
Salin selepas log masuk

Apabila cuba membuat siri contoh Kereta, rentetan JSON yang dijana tidak mengandungi medan seperti Model. Ini kerana System.Text.Json dalam .NET Core 3 tidak menyokong medan bersiri.

Penyelesaian

Dalam .NET 5 dan ke atas, System.Text.Json mempunyai keupayaan untuk mensiri medan. Ini boleh dicapai dengan mendayakan sokongan medan atau menandakan medan secara manual untuk bersiri.

Dayakan siri medan

Apabila mensiri, anda boleh mendayakan pensirilan medan dengan menetapkan sifat JsonSerializerOptions.IncludeFields kepada benar:

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

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

// 传递 "options" 进行序列化
var json = JsonSerializer.Serialize(car, options);</code>
Salin selepas log masuk

Tandai medan untuk disiri

Sebagai alternatif, anda boleh menggunakan atribut [JsonInclude] untuk menandakan medan individu untuk disirikan:

<code>[JsonInclude]
public string Model;</code>
Salin selepas log masuk

Contoh dua kaedah

<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>
Salin selepas log masuk

Dengan melaksanakan teknik ini, anda boleh memastikan objek bersiri dan desiri mempunyai nilai yang sama, termasuk nilai dalam medan kelas.

Atas ialah kandungan terperinci Bagaimana untuk Mensiri Medan Kelas Menggunakan System.Text.Json dalam .NET?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

sumber:php.cn
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan