Sirikan dan nyahsiri medan menggunakan System.Text.Json
Dalam .NET Core 3.x, System.Text.Json mempunyai pengehadan: pensirilan dan penyahsirilan medan tidak disokong. Ini boleh mencipta cabaran jika kelas memerlukan pembolehubah berasaskan medan.
Untuk menyelesaikan masalah ini, terdapat dua cara:
Untuk .NET Core 3.x:
Malangnya, medan tidak disokong dalam .NET Core 3.x. Seperti yang dinyatakan dalam dokumentasi, adalah mungkin untuk menggunakan penukar tersuai untuk mencapai fungsi ini. Walau bagaimanapun, ini memerlukan pelaksanaan proses penukaran manual.
Untuk .NET 5 dan ke atas:
Dalam .NET 5 dan ke atas, medan awam boleh disiri dan dinyahsiri menggunakan System.Text.Json. Terdapat dua cara untuk mencapai ini:
Dayakan pensirilan medan dengan menetapkan JsonSerializerOptions.IncludeFields kepada benar.
<code class="language-csharp">var options = new JsonSerializerOptions { IncludeFields = true }; var json = JsonSerializer.Serialize(car, options); var carDeserialized = JsonSerializer.Deserialize<Car>(json, options);</code>
Sebagai alternatif, gunakan atribut [JsonInclude] untuk menandakan medan tertentu untuk disirikan.
<code class="language-csharp">public class Car { [JsonInclude] public string Model; }</code>
Dengan menggunakan teknik ini, anda boleh memastikan bahawa medan kelas disiri dan dinyahsiri dengan betul, sekali gus menyimpan data dengan tepat antara objek.
Atas ialah kandungan terperinci Bagaimana untuk Mensiri dan Menyahseri Medan dengan System.Text.Json dalam .NET?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!