Penyahserialisasi tatasusunan JSON ke dalam objek yang dijangkakan gagal: "Tidak boleh nyahseri tatasusunan menjadi objek"
Percubaan untuk menyahsiri tatasusunan JSON ke dalam objek kelas tertentu boleh mengakibatkan ralat berikut: "Tidak boleh menyahsiri tatasusunan JSON (cth. [1,2,3]) untuk menaip 'MyClass' kerana jenis itu memerlukan Objek JSON (seperti {"name":"value"}) boleh dinyahsiri dengan betul."
Ralat ini menunjukkan bahawa data JSON berada dalam format tatasusunan, manakala kelas sasaran menjangkakan satu format objek. Untuk menyelesaikan isu ini, pertimbangkan perkara berikut:
1. Nyahsiri tatasusunan JSON ke dalam koleksi:
Jika anda ingin menyahsiri tatasusunan JSON ke dalam koleksi objek, anda boleh mengubah suai kod seperti berikut:
<code class="language-csharp">var objResponse1 = JsonConvert.DeserializeObject<List<RetrieveMultipleResponse>>(JsonStr);</code>
Dalam kes ini, tatasusunan JSON akan dinyahsiri ke dalam senarai objek RetrieveMultipleResponse.
2. Pastikan JSON diformatkan dengan betul sebagai objek:
Sebagai alternatif, jika anda perlu menyahsiri data JSON menjadi satu objek, anda boleh mengesahkan bahawa JSON diformatkan dengan betul. Rentetan JSON hendaklah disertakan dalam pendakap kerinting ({}) dan harus mengandungi pasangan nilai kunci. Contoh berikut JSON mewakili objek yang sah:
<code class="language-json">{ "Attributes": [ ... ], "Name": "account", "Id": "1" }</code>
Selepas memformat JSON menjadi objek, anda boleh menggunakan kod berikut untuk menyahsirikannya:
<code class="language-csharp">var objResponse1 = JsonConvert.DeserializeObject<RetrieveMultipleResponse>(JsonStr);</code>
Pilihan lain:
[JsonArray]
pada kelas sasaran untuk memaksa penyahserialisasian daripada tatasusunan JSON. Atas ialah kandungan terperinci Kenapa JSON Deserialization gagal apabila array dijangka sebagai objek?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!