Rumah >pembangunan bahagian belakang >C++ >Bagaimana untuk Mensiri Kelas Senarai Terbitan dalam Json.Net?
Memahami Cabaran Mensiri Kelas Senarai Terbitan dalam Json.Net
Apabila bekerja dengan kelas yang terbit daripada List
Mengatasi Dilema: Dua Pendekatan
Untuk menyelesaikan masalah ini, anda mempunyai dua pilihan:
Pilihan 1: Dedahkan Senarai sebagai Harta Awam
Anda boleh mencipta harta awam dalam kelas terbitan anda untuk mendedahkan senarai itu. Contohnya, dalam PagedResult
Pilihan 2: Gunakan JsonConverter Tersuai
Sebagai alternatif, anda boleh menulis JsonConverter tersuai untuk dikendalikan siri seperti yang dikehendaki. Berikut ialah contoh penukar untuk PagedResult
class PagedResultConverter<T> : JsonConverter { // Override methods for writing and reading JSON // For brevity, only the `WriteJson` method is shown here public override void WriteJson(JsonWriter writer, object value, JsonSerializer serializer) { PagedResult<T> result = (PagedResult<T>)value; // Create a JSON object to represent the PagedResult // Add both derived class members and list items to the object // Write the object to the writer } }
Dalam penukar ini, kami mempunyai kawalan penuh ke atas proses bersiri, memastikan kedua-dua ahli kelas terbitan dan senarai disertakan dalam output JSON.
Demo dan Kesimpulan
Berikut ialah tunjuk cara yang menggambarkan penukar tersuai dalam tindakan:
// Assume a `PagedResult<string>` class definition JsonSerializerSettings settings = new JsonSerializerSettings(); settings.Converters.Add(new PagedResultConverter<string>()); string json = JsonConvert.SerializeObject(result, settings);
Dengan menggunakan mana-mana pendekatan, anda boleh mensiri kedua-dua ahli kelas terbitan dan senarai dengan berkesan, memenuhi pesirilan anda keperluan dalam Json.Net.
Atas ialah kandungan terperinci Bagaimana untuk Mensiri Kelas Senarai Terbitan dalam Json.Net?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!