Rumah > pembangunan bahagian belakang > C++ > Bagaimana untuk Menyahseri JSON dengan Kekunci Dinamik ke dalam C#?

Bagaimana untuk Menyahseri JSON dengan Kekunci Dinamik ke dalam C#?

Mary-Kate Olsen
Lepaskan: 2025-01-19 19:37:12
asal
337 orang telah melayarinya

How to Deserialize JSON with Dynamic Keys into C#?

Kaedah penyahserikatan C# untuk mengendalikan data JSON dengan kekunci dinamik

Apabila menangani respons JSON dengan kekunci dinamik (seperti JSON yang disediakan dalam soalan), menyahsirikannya menjadi objek C# yang ditaip kuat boleh menjadi rumit. Memandangkan kunci tidak dapat diramalkan, tidak mungkin untuk memetakan struktur tindak balas terus kepada definisi kelas.

Untuk menyelesaikan masalah ini, anda boleh menggunakan ciri menaip dinamik dalam C#. JSON boleh dinyahsiri menjadi objek dinamik dengan menggunakan kaedah JsonConvert.DeserializeObject perpustakaan Newtonsoft JSON. Objek dinamik ini membenarkan akses kepada sifat menggunakan kunci rentetan yang diperoleh secara dinamik daripada respons JSON.

Sebagai contoh, coretan kod berikut menunjukkan cara menyahsiri respons JSON yang disediakan menjadi objek dinamik:

<code class="language-csharp">dynamic dynamicObject = JsonConvert.DeserializeObject<dynamic>(json);</code>
Salin selepas log masuk

Kini anda boleh mengakses sifat dynamicObject menggunakan nama sifat yang diambil daripada respons JSON, contohnya:

<code class="language-csharp">var nasdaqImbalanceName = dynamicObject["nasdaq_imbalance"].name;
var dxOpenIMGroup = dynamicObject["DXOpen IM"].group;</code>
Salin selepas log masuk

Walau bagaimanapun, jika perwakilan yang ditaip kuat diperlukan, pendekatan yang lebih maju diperlukan. Anda boleh menyahsiri respons JSON ke dalam senarai objek tersuai ini dengan membuat kelas tersuai yang mengandungi nama sifat yang diperlukan untuk mewakili struktur JSON.

Untuk respons JSON yang disediakan, takrifan kelas berikut sesuai:

<code class="language-csharp">public class Dataset
{
    public string name { get; set; }
    public string group { get; set; }
    public string description { get; set; }
}</code>
Salin selepas log masuk

Untuk melakukan ini, anda boleh menggunakan kelas JsonConvert untuk menyahsiri JSON ke dalam kamus kunci rentetan kepada objek Dataset dan kemudian menukarnya kepada senarai objek:

<code class="language-csharp">var dictionary = JsonConvert.DeserializeObject<Dictionary<string, Dataset>>(json);
var datasetList = dictionary.Values.ToList();</code>
Salin selepas log masuk

Pendekatan ini membolehkan anda mewakili struktur JSON dinamik dengan cara selamat jenis, membolehkan akses mudah kepada data dalam aplikasi C#.

Atas ialah kandungan terperinci Bagaimana untuk Menyahseri JSON dengan Kekunci Dinamik ke dalam C#?. 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