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
Lepaskan: 2024-12-04 05:08:14
asal
809 orang telah melayarinya

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"}"
Salin selepas log masuk

Apabila cuba menyahkod JSON dalam aplikasi klien menggunakan kod berikut:

$data = json_decode($foo, true)
Salin selepas log masuk

hasilnya adalah batal secara mengejutkan:

var_dump($data):
NULL
Salin selepas log masuk

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);
Salin selepas log masuk

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!

sumber:php.cn
Kenyataan Laman Web ini
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
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan