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:
Dictionary<string, JobCode>
. Ini mencerminkan sifat dinamik objek "kod kerja" dalam respons JSON. Kod penyahserialisasian
Dengan adanya struktur kelas yang betul, penyahserikatan menjadi mudah:
<code class="language-csharp">RootObject obj = JsonConvert.DeserializeObject<RootObject>(json);</code>
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>
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!