Rumah > pembangunan bahagian belakang > C++ > Bagaimanakah Saya Boleh Mensiri dan Menyahseri Medan Kelas dengan System.Text.Json?

Bagaimanakah Saya Boleh Mensiri dan Menyahseri Medan Kelas dengan System.Text.Json?

Barbara Streisand
Lepaskan: 2025-01-14 07:32:47
asal
754 orang telah melayarinya

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

Gunakan System.Text.Json untuk mensiri dan menyahsiri medan kelas

Versi .NET Core 3.x System.Text.Json tidak menyokong pesirilan dan penyahsirilan medan kelas secara asli. Ini boleh menjadi masalah untuk kelas yang sangat bergantung pada medan untuk penyimpanan data.

Untuk menyelesaikan masalah ini, System.Text.Json menyediakan dua kaedah berbeza bergantung pada versi .NET:

.NET Core 3.x

Malangnya, dalam .NET Core 3.x, System.Text.Json tidak menyokong medan. Untuk mengatasi had ini, anda perlu mencipta penukar tersuai untuk mengendalikan pensirilan dan penyahsirilan medan.

.NET 5 dan ke atas

Bermula dalam .NET 5, medan awam boleh disirikan dengan menetapkan sifat JsonSerializerOptions.IncludeFields kepada benar. Sebagai alternatif, anda boleh menandai medan untuk bersiri secara eksplisit menggunakan atribut [JsonInclude]. Contohnya adalah seperti berikut:

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

Dengan memanfaatkan teknik ini, anda boleh memastikan kelas anda boleh disiri dan dinyahsiri dengan cekap menggunakan System.Text.Json, walaupun semasa berurusan dengan medan kelas.

Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Mensiri dan Menyahseri Medan Kelas dengan System.Text.Json?. 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