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
Barbara Streisandasal
2025-01-14 07:32:47757semak imbas

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>

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!

Kenyataan:
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