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

Mengapa json_decode Mengembalikan NULL Selepas Panggilan Perkhidmatan Web Saya?

DDD
DDDasal
2024-11-29 15:27:11677semak imbas

Why is json_decode Returning NULL After My Webservice Call?

Menyelesaikan masalah json_decode Mengembalikan NULL selepas Panggilan Perkhidmatan Web

Apabila menggunakan json_decode untuk menghuraikan data JSON yang diambil daripada perkhidmatan web, kadangkala anda mungkin menghadapi isu yang membingungkan di mana nilai yang dikembalikan adalah NULL. Artikel ini menyelidiki kemungkinan punca dan menyediakan penyelesaian kepada masalah ini.

Salah satu suspek utama dalam senario ini ialah pengendalian petikan sihir PHP yang tidak betul dalam pelayan. Petikan ajaib ialah konfigurasi PHP yang secara automatik melepaskan aksara tertentu dalam data borang, seperti petikan dan garis miring ke belakang.

Jika petikan ajaib didayakan, data JSON yang diterima daripada perkhidmatan web mungkin rosak, menyebabkan json_decode gagal. Untuk membetulkan isu ini, anda boleh melumpuhkan petikan ajaib atau menanggalkan garis miring secara terpilih daripada rentetan JSON sebelum menyahkodnya.

Berikut ialah contoh cara mengendalikan situasi ini:

if (get_magic_quotes_gpc()) {
  // Magic quotes are enabled, remove slashes
  $jsonData = stripslashes($_POST['jsonData']);
} else {
  $jsonData = $_POST['jsonData'];
}

$data = json_decode($jsonData, true);

Dalam contoh ini , kami mula-mula menyemak sama ada petikan ajaib didayakan menggunakan fungsi get_magic_quotes_gpc(). Jika ya, kami menggunakan fungsi stripslashes() untuk mengalih keluar sebarang aksara yang terlepas daripada rentetan JSON.

Setelah rentetan JSON diformatkan dengan betul, kami boleh menggunakan json_decode untuk menghuraikannya ke dalam tatasusunan bersekutu. Penyelesaian ini harus menyelesaikan isu json_decode mengembalikan NULL apabila berurusan dengan data JSON yang diambil daripada perkhidmatan web.

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