Rumah >pembangunan bahagian belakang >tutorial php >Mengapakah `json_decode` Kembali NULL Selepas Panggilan Perkhidmatan Web?
Penyahkodan JSON Mengembalikan Batal Selepas Panggilan Perkhidmatan Web
Urutan ini meneroka gelagat pelik yang dihadapi semasa menyahkod respons JSON daripada panggilan perkhidmatan web. Isu ini timbul kerana fungsi json_decode mengembalikan NULL walaupun perkhidmatan web mengembalikan data JSON.
Untuk menyelesaikan masalah ini, penting untuk mengenal pasti puncanya. Dalam senario yang diberikan, kunci kepada masalah terletak pada petikan ajaib, konfigurasi PHP yang tidak digunakan lagi. Petikan ajaib secara automatik melepaskan aksara tertentu dan menukar maknanya dalam pembolehubah global seperti $_GET, $_POST, $_COOKIE, dll.
Apabila petikan ajaib didayakan, ia mengganggu proses penyahkodan dengan merosakkan data JSON yang diterima daripada perkhidmatan web. Ini membawa kepada json_decode gagal dan mengembalikan NULL.
Penyelesaian:
Untuk menangani isu ini, adalah penting untuk melumpuhkan petikan ajaib untuk pembolehubah $_POST secara khusus. Ini boleh dicapai melalui kod berikut:
if (get_magic_quotes_gpc()) { $param = stripslashes($_POST['param']); } else { $param = $_POST['param']; } $param = json_decode($param, true);
Dengan melumpuhkan petikan ajaib, data JSON kekal utuh dan boleh berjaya dinyahkod menggunakan json_decode.
Atas ialah kandungan terperinci Mengapakah `json_decode` Kembali NULL Selepas Panggilan Perkhidmatan Web?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!