Rumah > pembangunan bahagian belakang > C++ > Bagaimana untuk Menyahseri Koleksi Contoh Antara Muka Menggunakan JSON.NET?

Bagaimana untuk Menyahseri Koleksi Contoh Antara Muka Menggunakan JSON.NET?

Barbara Streisand
Lepaskan: 2025-01-06 07:00:40
asal
370 orang telah melayarinya

How to Deserialize Collections of Interface Instances Using JSON.NET?

Menyahsiri Koleksi Kejadian Antara Muka

Apabila cuba untuk mensiri dan menyahsiri koleksi contoh antara muka menggunakan JSON.NET, adalah penting untuk menangani isu pengenalan jenis semasa penyahserialisasian. Mesej ralat yang ditemui dalam senario ini menunjukkan bahawa tidak mungkin untuk membuat antara muka atau kelas abstrak secara langsung.

Pendekatan Pengikat Jenis Tersuai

Satu pendekatan yang dicadangkan melibatkan penggunaan pengikat Penyelesai Jenis tersuai. Ini melibatkan mencipta kelas tersuai yang melaksanakan antara muka ITypeResolver dan memberikannya kepada JsonSerializer semasa penyahserikatan. Pengikat tersuai akan bertanggungjawab untuk menyelesaikan jenis konkrit berdasarkan jenis antara muka.

Tetapan Lalai JSON.NET

Walau bagaimanapun, dengan JSON.NET, adalah mungkin untuk mencapai penyahserialisasian tanpa memerlukan pengikat tersuai. Dengan melaraskan tetapan TypeNameHandling dan TypeNameAssemblyFormat dalam objek JsonSerializerSettings, JSON.NET boleh mengendalikan pengenalpastian jenis secara automatik semasa kedua-dua penyirian dan penyahsirilan.

Pensirian

Apabila mensiri, nyatakan mengikuti tetapan:

string serializedJson = JsonConvert.SerializeObject(objectToSerialize, Formatting.Indented, new JsonSerializerSettings
{
    TypeNameHandling = TypeNameHandling.Objects,
    TypeNameAssemblyFormat = System.Runtime.Serialization.Formatters.FormatterAssemblyStyle.Simple
});
Salin selepas log masuk

Penyahserikatan

Apabila penyahserikatan, gunakan tetapan berikut:

var deserializedObject = JsonConvert.DeserializeObject<ClassToSerializeViaJson>(serializedJson, new JsonSerializerSettings
{
    TypeNameHandling = TypeNameHandling.Objects
});
Salin selepas log masuk

Dengan tetapan ini, JSON.NET akan secara automatik mengenal pasti jenis konkrit kejadian antara muka berdasarkan maklumat jenis yang diberikan semasa bersiri. Ini membolehkan penyahserikatan lancar koleksi yang mengandungi objek yang melaksanakan antara muka yang berbeza.

Atas ialah kandungan terperinci Bagaimana untuk Menyahseri Koleksi Contoh Antara Muka Menggunakan JSON.NET?. 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