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!