Rumah >pembangunan bahagian belakang >tutorial php >Mengapa json_decode Mengembalikan NULL Selepas Panggilan Perkhidmatan Web Saya?
Menyelesaikan masalah json_decode Mengembalikan NULL selepas Panggilan Perkhidmatan Web
Apabila menggunakan json_decode untuk menghuraikan data JSON yang diambil daripada perkhidmatan web, kadangkala anda mungkin menghadapi isu yang membingungkan di mana nilai yang dikembalikan adalah NULL. Artikel ini menyelidiki kemungkinan punca dan menyediakan penyelesaian kepada masalah ini.
Salah satu suspek utama dalam senario ini ialah pengendalian petikan sihir PHP yang tidak betul dalam pelayan. Petikan ajaib ialah konfigurasi PHP yang secara automatik melepaskan aksara tertentu dalam data borang, seperti petikan dan garis miring ke belakang.
Jika petikan ajaib didayakan, data JSON yang diterima daripada perkhidmatan web mungkin rosak, menyebabkan json_decode gagal. Untuk membetulkan isu ini, anda boleh melumpuhkan petikan ajaib atau menanggalkan garis miring secara terpilih daripada rentetan JSON sebelum menyahkodnya.
Berikut ialah contoh cara mengendalikan situasi ini:
if (get_magic_quotes_gpc()) { // Magic quotes are enabled, remove slashes $jsonData = stripslashes($_POST['jsonData']); } else { $jsonData = $_POST['jsonData']; } $data = json_decode($jsonData, true);
Dalam contoh ini , kami mula-mula menyemak sama ada petikan ajaib didayakan menggunakan fungsi get_magic_quotes_gpc(). Jika ya, kami menggunakan fungsi stripslashes() untuk mengalih keluar sebarang aksara yang terlepas daripada rentetan JSON.
Setelah rentetan JSON diformatkan dengan betul, kami boleh menggunakan json_decode untuk menghuraikannya ke dalam tatasusunan bersekutu. Penyelesaian ini harus menyelesaikan isu json_decode mengembalikan NULL apabila berurusan dengan data JSON yang diambil daripada perkhidmatan web.
Atas ialah kandungan terperinci Mengapa json_decode Mengembalikan NULL Selepas Panggilan Perkhidmatan Web Saya?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!