


Bagaimanakah Saya Boleh Menyahseri JSON dengan Medan Diketahui dan Tidak Diketahui ke dalam Kelas C#?
Penyahserialisasian medan JSON yang diketahui dan tidak diketahui dalam kelas C#
Apabila memproses data JSON, anda sering menemui hasil bercampur yang mengandungi medan yang diketahui dan tidak diketahui. Ini boleh menyebabkan cabaran apabila menyahsiri data ke dalam kelas dengan set sifat tetap.
Soalan: Memandangkan hasil JSON yang mengandungi medan yang diketahui dan tidak diketahui, bagaimanakah saya boleh menyahsirikannya ke dalam kelas yang mengandungi sifat untuk medan yang diketahui dan mampu mengendalikan medan yang tidak diketahui?
Penyelesaian yang mungkin:
Menggunakan penghurai kontrak tersuai untuk JSON.NET: Penyelesaian ini memerlukan penghurai kontrak tersuai untuk mengendalikan medan yang tidak diketahui. Walau bagaimanapun, memahami cara untuk mencapai ini boleh menjadi mencabar.
Pensiri kontrak data: Walaupun penyiri kontrak data menyediakan acara untuk penyirian dan penyahserikatan, ia hanya menyokong mengatasi kaedah tertentu dan tidak memberikan kawalan penuh ke atas pengendalian medan.
Sirikan kepada objek dinamik dan pemetaan tersuai: Pendekatan ini melibatkan penyahserian JSON menjadi objek dinamik dan kemudian memetakan medan yang tidak diketahui secara manual. Walaupun boleh, kemungkinan besar ia memerlukan banyak kerja.
Mewarisi daripada DynamicObject: Pensiri yang bergantung pada refleksi untuk penyahserikatan mungkin gagal memanggil kaedah tryGetMember dan trySetMember apabila menggunakan kelas yang mewarisi daripada DynamicObject.
Gunakan RESTSharp dengan penyeri bersiri tersuai: Menyelesaikan masalah ini dalam RESTSharp memerlukan penggunaan serializer tersuai.
Penyelesaian yang lebih baik menggunakan JsonExtensionDataAttribute (JSON.NET v5):
JSON.NET versi 5 memperkenalkan JsonExtensionDataAttribute, yang menyediakan cara yang lebih mudah dan lebih cekap untuk mengendalikan medan yang tidak diketahui.
Contoh kod:
public class Product { [JsonProperty("id")] public string Id { get; set; } [JsonProperty("name")] public string Name { get; set; } [JsonExtensionData] public Dictionary<string, JToken> ExtraFields { get; set; } }
Dalam contoh ini, kamus ExtraFields akan mengandungi pasangan nilai kunci untuk medan yang tidak diketahui dalam hasil JSON.
Kesimpulan:
Dengan memanfaatkan JsonExtensionDataAttribute dalam JSON.NET versi 5, pembangun boleh mengurus medan yang diketahui dan tidak diketahui dengan cekap dalam hasil JSON dan mengakses medan yang tidak diketahui melalui kamus ExtraFields.
Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Menyahseri JSON dengan Medan Diketahui dan Tidak Diketahui ke dalam Kelas C#?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Alat AI Hot

Undresser.AI Undress
Apl berkuasa AI untuk mencipta foto bogel yang realistik

AI Clothes Remover
Alat AI dalam talian untuk mengeluarkan pakaian daripada foto.

Undress AI Tool
Gambar buka pakaian secara percuma

Clothoff.io
Penyingkiran pakaian AI

AI Hentai Generator
Menjana ai hentai secara percuma.

Artikel Panas

Alat panas

Notepad++7.3.1
Editor kod yang mudah digunakan dan percuma

SublimeText3 versi Cina
Versi Cina, sangat mudah digunakan

Hantar Studio 13.0.1
Persekitaran pembangunan bersepadu PHP yang berkuasa

Dreamweaver CS6
Alat pembangunan web visual

SublimeText3 versi Mac
Perisian penyuntingan kod peringkat Tuhan (SublimeText3)

Topik panas

Apakah jenis nilai yang dikembalikan oleh fungsi bahasa C? Apa yang menentukan nilai pulangan?

Gulc: Perpustakaan C dibina dari awal

Langkah Format Fungsi Fungsi C Langkah Penukaran Kes

Apakah definisi dan peraturan panggilan fungsi bahasa C dan apakah itu

Di manakah nilai pulangan fungsi bahasa C yang disimpan dalam ingatan?

Penggunaan dan perkongsian frasa yang berbeza

Bagaimanakah saya menggunakan algoritma dari STL (jenis, mencari, mengubah, dll) dengan cekap?

Bagaimana Perpustakaan Templat St Standard (STL) berfungsi?
