Siri dan penyahserikatan jenis terbitan dalam Json.NET (Newtonsoft)
Json.NET menyediakan fleksibiliti dalam mensiri dan menyahsiri struktur data yang kompleks. Apabila berurusan dengan jenis terbitan, adalah penting untuk mengekalkan maklumat jenis semasa bersiri supaya ia dinyahsiri dengan betul.
Json.NET melaksanakan fungsi ini melalui atribut JsonSerializerSettings
objek TypeNameHandling
. Dengan menetapkan sifat ini kepada All
, Json.NET akan memasukkan nama jenis dalam output bersiri.
Sebagai contoh, pertimbangkan asas dan kelas terbitan berikut:
public class Base { public string Name; } public class Derived : Base { public string Something; }
Untuk mensiri dan menyahsiri jenis terbitan:
// 序列化 var object1 = new Base() { Name = "Object1" }; var object2 = new Derived() { Something = "Some other thing" }; var inheritanceList = new List<Base>() { object1, object2 }; JsonSerializerSettings settings = new JsonSerializerSettings { TypeNameHandling = TypeNameHandling.All }; string serialized = JsonConvert.SerializeObject(inheritanceList, settings); // 反序列化 var deserializedList = JsonConvert.DeserializeObject<List<Base>>(serialized, settings);
Dengan pendekatan ini, Json.NET mengekalkan maklumat jenis, membolehkan jenis terbitan berjaya dinyahsiri. Walau bagaimanapun, adalah penting untuk ambil perhatian bahawa output bersiri akan mengandungi jenis yang dikaitkan dengan objek dan sebarang senarai yang digunakan untuk menyimpannya.
Atas ialah kandungan terperinci Bagaimanakah Json.net Boleh Mengendalikan Jenis Terbitan Serial dan Deserialisasi?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!