Rumah > pembangunan bahagian belakang > tutorial php > Mengapa json_decode Mengembalikan NULL Selepas Panggilan Perkhidmatan Web?

Mengapa json_decode Mengembalikan NULL Selepas Panggilan Perkhidmatan Web?

Susan Sarandon
Lepaskan: 2024-12-05 11:50:10
asal
810 orang telah melayarinya

Why is json_decode Returning NULL After a Web Service Call?

Isu Penyahkodan JSON Selepas Panggilan Perkhidmatan Web

Dalam situasi ini berkenaan penghuraian JSON, OP mengalami isu pelik di mana json_decode secara tidak jelas mengembalikan NULL selepas menggunakan perkhidmatan web. Perkhidmatan web menghantar data JSON yang nampaknya mengikut sintaks yang betul:

{"action":"set","user":"123123123123","status":"OK"}
Salin selepas log masuk

Walau bagaimanapun, apabila cuba menyahkod muatan JSON ini dalam aplikasi PHP menggunakan json_decode($foo, true), ia secara mengelirukan mengembalikan NULL.

Potensi Penyelesaian

Untuk menangani isu yang membingungkan ini, OP mengabaikan faktor yang berpotensi kritikal: petikan ajaib PHP. Petikan ajaib, jika didayakan pada pelayan, boleh mendatangkan malapetaka pada data masuk dengan melarikan diri daripada aksara yang berpotensi berbahaya. Dalam keadaan ini, perkhidmatan web nampaknya menghantar JSON yang tidak dapat dielakkan, menyebabkan pertembungan dengan petikan ajaib.

Untuk mengelakkan isu ini, lumpuhkan petikan ajaib dengan menambahkan baris berikut pada permulaan skrip PHP:

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

Ini memastikan bahawa data JSON yang diterima daripada perkhidmatan web kekal tidak terjejas oleh petikan ajaib, menyelesaikan penyahkodan masalah.

Atas ialah kandungan terperinci Mengapa json_decode Mengembalikan NULL Selepas Panggilan Perkhidmatan Web?. 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