Rumah >pembangunan bahagian belakang >C++ >Mengapa JSON.NET Mensiri Objek Saya Dua Kali dalam API Web, dan Bagaimana Saya Boleh Membetulkannya?

Mengapa JSON.NET Mensiri Objek Saya Dua Kali dalam API Web, dan Bagaimana Saya Boleh Membetulkannya?

Mary-Kate Olsen
Mary-Kate Olsenasal
2025-01-24 21:47:09222semak imbas

Why is JSON.NET Serializing My Objects Twice in Web API, and How Can I Fix It?

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!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn