Ralat tidak padan jenis penyahserialisasian JSON
Dalam pengaturcaraan, menghadapi ralat "Tidak dapat menyahsiri objek JSON semasa (contohnya: {"name":"value"}
)..." adalah masalah biasa. Ralat ini berlaku apabila struktur data JSON tidak konsisten dengan jenis jangkaan yang ditakrifkan dalam kod.
Dalam coretan kod berikut:
<code class="language-csharp"> //jsonstring {"data":[{"target_id":9503123,"target_type":"user"}]} List<RootObject> datalist = JsonConvert.DeserializeObject<List<RootObject>>(jsonstring);</code>
Masalahnya ialah dengan jenis deserialisasi. Baris ini cuba untuk menyahsiri rentetan JSON jsonstring
menjadi List<RootObject>
, mengharapkan tatasusunan objek. Walau bagaimanapun, struktur data JSON ialah objek, yang hanya mempunyai satu sifat yang dipanggil data
, yang mengandungi tatasusunan objek.
Untuk menyelesaikan masalah ini, jenis desiri perlu sepadan dengan struktur data JSON. Dalam kes ini, baris penyahserialisasian yang betul ialah:
<code class="language-csharp"> RootObject datalist = JsonConvert.DeserializeObject<RootObject>(jsonstring);</code>
Objek JSON yang mengandungi sifat datalist
(yang memegang tatasusunan objek) boleh dinyahsiri dengan betul dengan mengisytiharkan RootObject
sebagai data
. Ini mengelakkan ralat tidak padan jenis kerana kini jenis kod yang dijangkakan adalah konsisten dengan struktur sebenar data JSON.
Atas ialah kandungan terperinci Mengapakah Saya Mendapat Ralat Penyahserian 'Jenis Tidak Padan' dengan Data JSON Saya?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!