Rumah >pembangunan bahagian belakang >tutorial php >Mengapakah JSON Decode saya Mengembalikan NULL Walaupun Respons JSON yang Nampak Sah daripada Perkhidmatan Web saya?

Mengapakah JSON Decode saya Mengembalikan NULL Walaupun Respons JSON yang Nampak Sah daripada Perkhidmatan Web saya?

Susan Sarandon
Susan Sarandonasal
2024-12-04 05:08:14820semak imbas

Why is my JSON Decode Returning NULL Despite a Seemingly Valid JSON Response from my Web Service?

Penyahkodan JSON Gagal dengan Respons Null daripada Perkhidmatan Web

Isu pelik berlaku apabila menggunakan json_encode dan json_decode untuk mengendalikan data JSON dalam aplikasi perkhidmatan web . Perkhidmatan web mengembalikan JSON dalam format berikut:

var_dump($foo):
string(62) "{"action":"set","user":"123123123123","status":"OK"}"

Apabila cuba menyahkod JSON dalam aplikasi klien menggunakan kod berikut:

$data = json_decode($foo, true)

hasilnya adalah batal secara mengejutkan:

var_dump($data):
NULL

Satu punca yang berpotensi di sebalik isu ini terletak pada konfigurasi petikan ajaib PHP pada pelayan. Dalam versi PHP sebelum 5.4, petikan ajaib secara automatik melepaskan aksara tertentu dalam penyerahan borang, termasuk input JSON. Untuk menyelesaikan isu ini, lumpuhkan petikan ajaib menggunakan kod berikut:

if(get_magic_quotes_gpc()){
  $param = stripslashes($_POST['param']);
}else{
  $param = $_POST['param'];
}
$param = json_decode($param,true);

Ini sepatutnya menyelesaikan isu dan membenarkan json_decode mengembalikan objek JSON yang dijangkakan seperti yang diharapkan.

Atas ialah kandungan terperinci Mengapakah JSON Decode saya Mengembalikan NULL Walaupun Respons JSON yang Nampak Sah daripada Perkhidmatan Web saya?. 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