json.net serialization objek polimorfik (tiada "$ jenis" medan)
Kaedah 1: Rame "$ type" ke nama tersuai
Kaedah 2: Tambah maklumat subclass ke kelas asas
Daripada menggunakan kelas kontena untuk menyimpan maklumat sub -jenis, menambah atribut yang dipanggil "Jenis" ke kelas asas:
Ini memastikan bahawa apabila objek jenis subtypeclassbase bersiri, ia sentiasa mengandungi maklumat sub -jenis.
<code class="language-csharp">[JsonConverter(typeof(SubTypeClassConverter))] public class SubTypeClassBase { [JsonConverter(typeof(StringEnumConverter))] public SubType Type { get { return typeToSubType[GetType()]; } } }</code>
Untuk betul -betul bersiri JSON, buat jsonconverter yang disesuaikan (subtypeclassconverter). Melalui kaedah ini, json.net secara automatik akan memasukkan atribut "jenis" apabila objek subtypeclassbase bersiri, dan menggunakan subtypeclassconverter untuk betul mengatur siri JSON mengikut jenis yang ditentukan.
Respons ini mengekalkan imej, menyusun semula teks untuk pembacaan dan aliran yang lebih baik, dan digunakan untuk makna Al. . 3
Atas ialah kandungan terperinci Bagaimana untuk bersiri objek polimorfik dalam json.net tanpa medan '$ jenis'?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!