Rumah > pembangunan bahagian belakang > C++ > Bagaimanakah Saya Boleh Menyahserialisasi Data JSON Bersarang Kompleks ke dalam Kelas C#?

Bagaimanakah Saya Boleh Menyahserialisasi Data JSON Bersarang Kompleks ke dalam Kelas C#?

Patricia Arquette
Lepaskan: 2025-01-19 22:13:10
asal
488 orang telah melayarinya

How Can I Deserialize Complex Nested JSON Data into C# Classes?

Nyahserialisasi data JSON bersarang kompleks kepada kelas C#

Dalam sesetengah kes, API mungkin mengembalikan data JSON yang mengandungi berbilang peringkat objek bersarang. Menyahsiri data sedemikian ke dalam kelas C# boleh mencabar, terutamanya jika struktur objek tidak betul-betul sepadan dengan respons JSON.

Penjelasan terperinci masalah

Seperti yang ditunjukkan dalam contoh, respons JSON yang disediakan mengandungi objek "hasil" peringkat akar, yang mengandungi objek "kod kerja" yang mengandungi berbilang pasangan nilai kunci yang mewakili kod kerja individu. Walau bagaimanapun, reka bentuk objek C# yang asal hanya mempertimbangkan satu contoh JobCode, yang mengakibatkan nilai nol dikembalikan apabila dinyahsiri.

Penyelesaian

Untuk berjaya menyahsiri data JSON yang kompleks, pastikan anda membuat struktur kelas yang betul-betul sama dengan respons JSON. Dalam kes ini:

  1. Objek Tahap Root: Memerlukan kelas "RootObject" untuk mewakili keseluruhan struktur JSON dan mengandungi sifat "Results".
  2. Objek bersarang: Kelas "Results" harus mengandungi sifat "jobcodes" jenis Dictionary<string, JobCode>. Ini mencerminkan sifat dinamik objek "kod kerja" dalam respons JSON.
  3. Kelas Kod Kerja: Kelas "Kod Kerja" kekal tidak berubah dan mewakili butiran kod kerja individu.

Kod penyahserialisasian

Dengan adanya struktur kelas yang betul, penyahserikatan menjadi mudah:

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

Barisan kod ini menyahsiri respons JSON kepada kelas "RootObject", memberikan anda akses kepada sifat "Results" dan butiran kod kerja yang berkaitan.

Kembali ke senarai JobCodes

Untuk mendapatkan semula senarai kod kerja, anda boleh menggunakan gelung mudah untuk mengekstraknya daripada kamus "Kod Kerja":

<code class="language-csharp">List<JobCode> jobCodes = new List<JobCode>();
foreach (KeyValuePair<string, JobCode> jobCode in obj.Results.JobCodes)
{
    jobCodes.Add(jobCode.Value);
}</code>
Salin selepas log masuk

Dengan mengikut langkah ini, anda boleh menyahsiri data JSON kompleks yang mengandungi objek bersarang ke dalam kelas C# dengan cekap, menjadikannya lebih mudah untuk mengakses dan memproses respons API.

Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Menyahserialisasi Data JSON Bersarang Kompleks ke dalam Kelas 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