Rumah >pembangunan bahagian belakang >C++ >Bagaimanakah Saya Boleh Menyahseri JSON dengan Medan Diketahui dan Tidak Diketahui dalam C#?

Bagaimanakah Saya Boleh Menyahseri JSON dengan Medan Diketahui dan Tidak Diketahui dalam C#?

Linda Hamilton
Linda Hamiltonasal
2025-01-18 09:17:10118semak imbas

How Can I Deserialize JSON with Both Known and Unknown Fields in C#?

Penyahserikatan JSON bagi medan yang diketahui dan tidak diketahui dalam C#

Apabila hasil JSON mengandungi medan yang diketahui dan tidak diketahui, biasanya perlu untuk memetakan medan yang tidak diketahui ke dalam kamus untuk akses dan pengubahsuaian yang mudah. Walaupun terdapat pelbagai cara untuk mencapai ini, menggunakan JsonExtensionDataAttribute dalam JSON .NET menyediakan penyelesaian yang mudah.

Atribut

JsonExtensionDataAttribute membolehkan anda menentukan atribut untuk menyimpan medan tidak diketahui tambahan. Contohnya adalah seperti berikut:

<code class="language-csharp">public class Product
{
    public string id { get; set; }
    public string name { get; set; }

    [JsonExtensionData]
    private IDictionary<string, JToken> _extraFields;
}</code>

Menggunakan atribut ini, medan yang tidak diketahui akan disimpan dalam atribut _extraFields, iaitu kamus kunci rentetan (nama medan) dan nilai JToken (nilai medan). Ini membolehkan anda mengakses dan mengubah suai medan yang tidak diketahui dengan mudah dalam kod anda.

Sila ambil perhatian bahawa kaedah ini memerlukan JSON .NET v5 versi 5 atau lebih tinggi. Jika anda menggunakan versi terdahulu, anda mungkin mahu meneroka pilihan lain yang disebut dalam artikel asal, seperti menggunakan penghurai kontrak tersuai atau penukar tersuai.

Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Menyahseri JSON dengan Medan Diketahui dan Tidak Diketahui dalam C#?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
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