Rumah >pembangunan bahagian belakang >C++ >Bagaimana untuk Menyelesaikan 'Rujukan Pekeliling Telah Dikesan Semasa Mensiri Objek' Ralat dalam Pensirian JSON?
Isu rujukan pekeliling bersiri JSON: Rujukan pekeliling dikesan semasa mensiri objek jenis...
Apabila mensiri objek kepada JSON, anda mungkin menghadapi ralat "rujukan bulat" jika rujukan dalam graf objek membentuk kitaran. Untuk menyelesaikan masalah ini, anda perlu menghapuskan rujukan pekeliling ini.
Punca masalah:
Dalam contoh kod yang disediakan:
<code>public JsonResult GetEventData() { var data = Event.Find(x => x.ID != 0); return Json(data); }</code>
Objek "data" mungkin mengandungi rujukan kepada objek lain, yang mungkin merujuk kepada objek "data". Rujukan pekeliling ini boleh menyebabkan masalah semasa bersiri.
Penyelesaian:
Untuk menyelesaikan isu rujukan pekeliling anda boleh:
<code>return Json(new { PropertyINeed1 = data.PropertyINeed1, PropertyINeed2 = data.PropertyINeed2 });</code>
Menggunakan DTO (Objek Pemindahan Data): Cipta kelas DTO berasingan yang mengandungi hanya sifat yang diperlukan untuk siri JSON. Ini akan memecahkan rujukan bulat dan membenarkan siri yang lancar.
Konfigurasikan tetapan siri: Pustaka siri JSON selalunya membenarkan anda mengkonfigurasi gelagat pengendalian rujukan bulat. Anda boleh mengarahkan perpustakaan untuk mengabaikannya atau menyusunnya secara berbeza. Lihat dokumentasi untuk perpustakaan khusus yang anda gunakan untuk mendapatkan butiran lanjut.
Dengan melaksanakan salah satu daripada penyelesaian ini, anda boleh menghapuskan rujukan bulat dan berjaya mensiri objek ke JSON.
Atas ialah kandungan terperinci Bagaimana untuk Menyelesaikan 'Rujukan Pekeliling Telah Dikesan Semasa Mensiri Objek' Ralat dalam Pensirian JSON?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!