Rumah > Artikel > pembangunan bahagian belakang > Mengapakah `json_encode` menambahkan garis miring ke belakang yang tidak diingini pada output JSON saya?
JSON Conundrum: Merungkai Anomali Sentak Belakang dalam json_encode
Dalam bidang pengekodan data JSON, fungsi json_encode telah lama menjadi alat yang dipercayai. Walau bagaimanapun, pertemuan baru-baru ini telah menimbulkan persoalan yang membingungkan: mengapa json_encode menambah garis miring ke belakang yang tidak diingini?
Untuk menyelidiki enigma ini, mari kita periksa kod yang disediakan:
print_r($result); echo json_encode($result);
Arahan print_r memaparkan tatasusunan bersekutu seperti yang diharapkan. Apabila json_encode digunakan, ia menukar tatasusunan kepada JSON, yang kelihatan sah. Walau bagaimanapun, selepas pemeriksaan lanjut, garis miring tersembunyi muncul.
{ "logo_url":"http:\/\/mysite.com\/uploads\/gallery\/7f\/3b\/f65ab8165d_logo.jpeg", "img_id":"54", "feedback":{"message":"File uploaded","success":true} }
Mengapakah garis miring luar ini? Penyahpepijatan selanjutnya mendedahkan kelainan dalam kisah itu. Anomali tidak berlaku dalam json_encode itu sendiri, tetapi dalam panggilan parseJSON berikutnya. Meneliti data JavaScript menggunakan data.toSource() menemui rentetan yang tidak mematuhi JSON:
({response:"{\"logo_url\":\"http:\/\/storelocator.com\/wp-content\/uploads\/gallery\/7f\/3b\/71b9520cfc91a90afbdbbfc9d2b2239b_logo.jpeg\",\"img_id\":\"62\",\"feedback\":{\"message\":\"File uploaded\",\"success\":true}}", status:200})
Penyelesaian:
Kunci untuk menyelesaikan isu ini terletak dalam menentukan pilihan "JSON_UNESCAPED_SLASHES" untuk json_encode. Diperkenalkan dalam PHP versi 5.4, pilihan ini secara berkesan menghalang fungsi daripada menambahkan garis miring ke belakang kepada garis miring ke hadapan.
json_encode($array,JSON_UNESCAPED_SLASHES);
Berbekalkan pengetahuan ini, misteri garis miring ke belakang yang tidak diingini diselesaikan, membolehkan pengekodan JSON yang lancar tanpa gangguan escapist !
Atas ialah kandungan terperinci Mengapakah `json_encode` menambahkan garis miring ke belakang yang tidak diingini pada output JSON saya?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!