Rumah > pembangunan bahagian belakang > C++ > Bagaimanakah Saya Boleh Mengendalikan Medan JSON yang Diketahui dan Tidak Diketahui Semasa Penyahserialisasian dalam .NET?

Bagaimanakah Saya Boleh Mengendalikan Medan JSON yang Diketahui dan Tidak Diketahui Semasa Penyahserialisasian dalam .NET?

DDD
Lepaskan: 2025-01-18 09:02:09
asal
566 orang telah melayarinya

How Can I Handle Known and Unknown JSON Fields During Deserialization in .NET?

Mengendalikan medan JSON yang diketahui dan tidak diketahui dalam penyahserikatan .NET

Apabila memproses data JSON, anda sering menghadapi situasi di mana terdapat kedua-dua medan yang diketahui dan medan yang tidak diketahui. Medan yang diketahui boleh dipetakan kepada sifat tertentu dalam kelas, manakala medan yang tidak diketahui memerlukan pengendalian khas untuk mengelakkan kehilangan data.

Menggunakan penghurai kontrak tersuai untuk JSON .NET

Satu cara untuk mengurus medan yang tidak diketahui ialah memanfaatkan penghurai kontrak tersuai dalam JSON .NET. Walau bagaimanapun, untuk mencapai ini boleh menjadi mencabar.

Penghadan penyeri bersiri DataContract

Penyeriseri DataContract tidak membenarkan penyahserikatan mengatasi, jadi tidak sesuai untuk kes ini.

Objek Dinamik dan Pensirian

Mensiri dan menyahsiri kepada objek dinamik boleh memberikan penyelesaian, tetapi ia adalah proses yang membosankan dan melibatkan pemprosesan pasca.

warisan DynamicObject

Mewarisi daripada kelas DynamicObject juga tidak menyelesaikan masalah kerana penyeri bersiri bergantung pada pantulan dan tidak memanggil kaedah tersuai untuk objek dinamik.

Penyelesaian yang lebih mudah: JsonExtensionDataAttribute

Daripada menggunakan teknik yang rumit, pertimbangkan JsonExtensionDataAttribute dalam JSON .NET (versi 5.0 dan ke atas). Atribut ini membenarkan medan yang tidak diketahui disimpan secara awanama dalam atribut jenis IDictionary<string, JToken>.

<code class="language-csharp">public class Product
{
    public string id { get; set; }
    public string name { get; set; }
    [JsonExtensionData]
    public Dictionary<string, JToken> UnknownFields { get; set; }
}</code>
Salin selepas log masuk

Menggunakan pendekatan ini, data JSON akan berjaya dinyahsiri dan medan yang diketahui serta tidak diketahui boleh diakses melalui contoh kelas.

Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Mengendalikan Medan JSON yang Diketahui dan Tidak Diketahui Semasa Penyahserialisasian dalam .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
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan