Rumah > pembangunan bahagian belakang > C++ > Bagaimanakah saya dapat bersiri dan menonjolkan objek kanak -kanak polimorfik di json.net tanpa medan 'type'?

Bagaimanakah saya dapat bersiri dan menonjolkan objek kanak -kanak polimorfik di json.net tanpa medan 'type'?

Mary-Kate Olsen
Lepaskan: 2025-01-24 13:07:08
asal
700 orang telah melayarinya

How Can I Serialize and Deserialize Polymorphic Child Objects in JSON.NET Without a

Jenis data dengan sub -objects polymorphic dengan json.net serialization and desertileization

json.net membolehkan siri dan derivatif antara kelas JSON dan C#, tetapi mungkin menjadi rumit apabila memproses objek polimorfik.

Gunakan medan Type $

Kaedah lalai adalah menggunakan

untuk menambah medan TypeNameHandling.Auto ke JSON untuk menunjukkan jenis sub -object. Walau bagaimanapun, ini akan memperkenalkan bidang yang tidak perlu. $type

kaedah rawatan sub -jenis alternatif

Untuk mengelakkan medan , kaedah alternatif adalah untuk membuat kelas asas untuk objek polimorfik dan menambah atribut

untuk menunjukkan sub -jenis. Walau bagaimanapun, ini memerlukan kelas kontena untuk memasukkan contoh -contoh sub -obsobject untuk mengakses atribut $type semasa bersiri. Type Type atribut sub -jenis di kelas asas

Kaedah yang lebih stabil ialah menambah maklumat sub -jenis sebagai atribut ke kelas asas. Ini dilakukan dengan menggunakan atribut

.

JsonConverter penukar sub -type custom Type

Custom Converter menggunakan kaedah

untuk memeriksa harta "jenis" di JSON, dan objek bersiri yang sepadan. Ia juga mentakrifkan kaedah untuk menentukan jenis yang dapat dikendalikannya.

pelaksanaan kod ReadJson Pelaksanaan prototaip berikut menerangkan kaedah ini: CanConvert

Melalui kaedah penggantian ini, maklumat sub -jenis tertanam di JSON sendiri, tanpa medan yang berasingan, dan menyediakan penyelesaian yang fleksibel untuk objek polimer bersiri.

Output ini menghindari phrassion yang tidak perlu seperti "Pendekatan lalai adalah ..." sambil mengekalkan makna asal dan struture. > Seksyen dengan aktiviti ImpityTation Custom Converter

Atas ialah kandungan terperinci Bagaimanakah saya dapat bersiri dan menonjolkan objek kanak -kanak polimorfik di json.net tanpa medan 'type'?. 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