Rumah >pembangunan bahagian belakang >tutorial php >Mengapakah `json_decode` Mengembalikan NULL Walaupun Data JSON Nampak Sah?

Mengapakah `json_decode` Mengembalikan NULL Walaupun Data JSON Nampak Sah?

DDD
DDDasal
2024-12-12 22:19:11952semak imbas

Why Does `json_decode` Return NULL Despite Valid-Looking JSON Data?

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!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn