Masalah: Ralat Rujukan Pekeliling dalam Pensirilan JSON SubSonic
Apabila mengembalikan data JSON menggunakan SubSonic.Schema.DatabaseColumn
, ralat HTTP 500 berlaku, memaparkan mesej "Rujukan pekeliling dikesan semasa mensiri objek jenis 'SubSonic.Schema.DatabaseColumn'." Ralat ini berterusan walaupun semasa menggunakan Find()
atau All().ToList()
untuk mendapatkan semula data.
Penyelesaian: Pengambilan Harta Terpilih dan Output JSON Dioptimumkan
Punca pokok ialah rujukan bulat dalam struktur objek yang tidak dapat dikendalikan oleh penyeri bersiri JSON. Penyelesaiannya melibatkan mendapatkan semula sifat yang diperlukan untuk respons JSON anda, dengan itu menghalang rujukan pekeliling. Ini boleh dicapai dalam dua cara:
<code class="language-csharp">return Json(new { PropertyINeed1 = data.PropertyINeed1, PropertyINeed2 = data.PropertyINeed2 });</code>
Pendekatan ini mengelak daripada memasukkan data yang tidak diperlukan dan menyelaraskan objek JSON.
SubSonic.Schema.DatabaseColumn
) dan Objek Pemindahan Data (DTO) khusus yang direka untuk pensirilan JSON. DTO ini hanya akan mengandungi sifat yang diperlukan untuk paparan, menghalang rujukan pekeliling. Ini menyediakan penyelesaian yang lebih boleh diselenggara dan cekap untuk struktur data yang kompleks.Dengan melaksanakan salah satu kaedah ini, anda menghapuskan rujukan bulat dan berjaya mengembalikan data JSON yang diingini.
Atas ialah kandungan terperinci Bagaimana untuk Menyelesaikan Ralat 'Rujukan Pekeliling Dikesan Mensiri SubSonic.Schema.DatabaseColumn' dalam JSON Returns?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!