Ralat penyahserikatan tatasusunan JSON: sebab penyelesaian masalah
Apabila cuba menyahsiri data JSON, sentiasa pastikan struktur JSON konsisten dengan objek atau jenis koleksi yang dijangkakan. Dalam kes ini, ralat yang dihadapi ialah:
<code>“无法将当前JSON数组(例如[1,2,3])反序列化为类型'test.Model.RetrieveMultipleResponse',因为该类型需要一个JSON对象(例如{"name":"value"})才能正确反序列化。”</code>
Fahami struktur JSON
JSON yang disediakan mewakili pelbagai objek RetrieveMultipleResponse:
<code>[ { ... }, { ... }, { ... } ]</code>
Struktur ini menunjukkan bahawa JSON ialah tatasusunan objek RetrieveMultipleResponse individu, bukan satu objek.
Padankan struktur JSON dengan jenis sasaran
Jenis sasaran penyahserikatan yang ditentukan ialah 'RetrieveMultipleResponse', yang menjangkakan satu objek. Walau bagaimanapun, struktur JSON ialah pelbagai objek. Untuk menyelesaikan ketidakpadanan ini, kita perlu menyahsiri JSON menjadi jenis koleksi yang boleh mengendalikan tatasusunan objek.
Penyelesaian: Nyahserialisasikan kepada jenis koleksi
Untuk menyahsiri tatasusunan JSON dengan betul, kita perlu menggunakan jenis koleksi sebagai jenis sasaran:
<code>var objResponse1 = JsonConvert.DeserializeObject<List<RetrieveMultipleResponse>>(JsonStr);</code>
Kami berjaya menyahsiri tatasusunan objek RetrieveMultipleResponse dengan menukar jenis sasaran kepada jenis koleksi (cth. Senarai).
Atas ialah kandungan terperinci Mengapa Array Deserialization JSON saya gagal apabila mengharapkan satu objek?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!