Menyelesaikan masalah Pensiri Berganda dengan JSON.NET dalam API Web
Isu biasa dalam pembangunan API Web melibatkan JSON.NET secara tidak dijangka mensiri objek dua kali. Ini sering berlaku apabila menggunakan JsonConvert.SerializeObject(instance)
bersama penukar tersuai yang ditakrifkan dalam JsonConvert.DefaultSettings
dalam WebApiConfig
. Hasilnya ialah respons JSON yang disertakan dalam petikan berganda dengan petikan dalaman yang terlepas.
Penyelesaian adalah mudah: elakkan mensiri objek secara manual menggunakan JsonConvert.SerializeObject
. Sebaliknya, biarkan pengawal API Web mengendalikan proses bersiri. Hanya pulangkan objek anda secara terus:
<code class="language-csharp">public IEnumerable<foobar> GetFoobars() { var foobars = ...; return foobars; }</code>
Dengan mengembalikan objek foobar
tanpa bersiri eksplisit, pengawal API Web akan menggunakan tetapan lalainya untuk menyerikan data ke dalam sama ada JSON atau XML, bergantung pada permintaan pelanggan. Ini menghapuskan masalah bersiri berganda.
Sumber Lanjut:
Atas ialah kandungan terperinci Mengapa JSON.NET Mensiri Objek Saya Dua Kali dalam API Web, dan Bagaimana Saya Boleh Membetulkannya?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!