Mengendalikan penyahserialisasian objek JSON bersarang
Dalam kod anda, anda menghadapi masalah menyahsiri data JSON yang mengandungi objek bersarang. Panduan ini akan menangani isu ini dan menyediakan penyelesaian untuk mendapatkan senarai kod kerja daripada JSON yang disediakan.
Struktur kelas tidak konsisten
Pada mulanya, anda cuba menyahsiri keseluruhan respons JSON ke dalam satu kelas JobCode
, mengabaikan bahawa terdapat berbilang kod kerja di bawah kekunci "kod kerja". Untuk menyelesaikan masalah ini, kita perlu mencipta kelas yang sepadan dengan struktur JSON.
Gunakan kamus untuk mengendalikan kunci berubah
Kunci untuk atribut "jobcodes" dalam JSON ialah nilai rentetan ("1" dan "2" dalam contoh anda). Untuk menampung kebolehubahan ini, kami menggunakan Dictionary<string, JobCode>
dan bukannya hanya List<JobCode>
. Kamus ini membolehkan kami mendapatkan semula kod kerja menggunakan kunci masing-masing.
Struktur kelas dikemas kini
Berikut ialah struktur kelas yang diubah suai sejajar dengan JSON:
<code class="language-csharp">public class RootObject { [JsonProperty("results")] public Results Results { get; set; } } public class Results { [JsonProperty("jobcodes")] public Dictionary<string, JobCode> JobCodes { get; set; } } public class JobCode { [JsonProperty("_status_code")] public string StatusCode { get; set; } [JsonProperty("_status_message")] public string StatusMessage { get; set; } [JsonProperty("id")] public string Id { get; set; } [JsonProperty("name")] public string Name { get; set; } }</code>
Penyahserialisasian yang dikemas kini
Dengan kelas ini, anda boleh menyahsiri JSON menggunakan kod berikut:
<code class="language-csharp">RootObject obj = JsonConvert.DeserializeObject<RootObject>(json);</code>
Ini akan mengisi pembolehubah obj
dengan data JSON yang dinyahsiri, membolehkan anda mengakses senarai kod kerja melalui obj.Results.JobCodes
.
Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Menyahserialisasi Objek JSON Bersarang untuk Mengekstrak Senarai Kod Kerja?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!