Memahami Isu Penyahkodan JSON dalam Panggilan Perkhidmatan Web
Dalam interaksi perkhidmatan web, kadangkala, fungsi json_decode mengembalikan NULL. Isu mengelirukan timbul apabila perkhidmatan web menyediakan data JSON yang menyerupai:
var_dump($foo): string(62) "{"action":"set","user":"123123123123","status":"OK"}"
Walau bagaimanapun, percubaan untuk menyahkod JSON dalam aplikasi mengembalikan NULL:
$data = json_decode($foo, true); var_dump($data): NULL
Menyelesaikan Masalah
Satu punca yang berpotensi untuk isu ini ialah kefungsian petikan ajaib PHP. Petikan ajaib secara automatik melepaskan aksara khas dalam data borang, yang berpotensi mengganggu penghuraian JSON. Untuk menyelesaikan masalah ini:
if (get_magic_quotes_gpc()) { $param = stripslashes($_POST['param']); } else { $param = $_POST['param']; } $param = json_decode($param, true);
Dengan melumpuhkan petikan ajaib atau menanggalkan garis miring daripada data JSON, aplikasi boleh menyahkod JSON dengan tepat dan mendapatkan maklumat yang diingini.
Atas ialah kandungan terperinci Mengapakah `json_decode` Mengembalikan NULL Walaupun Data JSON Nampak Sah?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!