Rumah >pembangunan bahagian belakang >tutorial php >Bagaimana untuk Mengesan Data JSON Cacat dalam PHP Menggunakan `json_decode()`?
Cara Mengesan Data JSON Cacat Menggunakan Penyahkod JSON dalam PHP
Apabila cuba menghuraikan data JSON menggunakan json_decode(), pengendalian format tidak sah adalah penting untuk memastikan integriti data. Walaupun fungsi ini secara amnya berkesan, ia mungkin menunjukkan ketidakkonsistenan apabila mengendalikan jenis input tertentu.
Senario Masalah
Pertimbangkan senario berikut:
if(!json_decode($_POST)) { echo "bad json data!"; exit; }
Skrip ini bertujuan untuk mengesan dan mengendalikan data JSON yang tidak sah. Walau bagaimanapun, apabila $_POST mengandungi format JSON yang sah (cth., { bar: "baz" }), json_decode() menguruskan ralat dengan betul, memaparkan "data json buruk!". Walau bagaimanapun, apabila $_POST ditetapkan kepada format yang tidak sah (cth., "data tidak sah"), amaran yang tidak dijangka dibangkitkan, diikuti dengan "data json buruk!":
Warning: json_decode() expects parameter 1 to be string, array given in ... bad json data!
Pengesanan Tersuai atau Penyelesaian Alternatif?
Untuk menangani isu ini, pembangun boleh mempertimbangkan untuk menulis skrip tersuai untuk mengesan data JSON yang sah atau meneroka pilihan lain yang tersedia.
Penyelesaian Menggunakan Ciri Nyahkod JSON:
Nyahkod JSON mempunyai beberapa ciri utama untuk dipertimbangkan:
Untuk mengelakkan isu amaran, pengendali @ boleh digunakan (walaupun penggunaannya tidak digalakkan kerana kemungkinan kesukaran penyahpepijatan). Operator ini menyekat amaran sambil masih membenarkan skrip meneruskan pelaksanaan.
$_POST = array('bad data'); $data = @json_decode($_POST);
Selepas menekan amaran, adalah perlu untuk menyemak sama ada $data adalah batal. Untuk membezakan antara format yang tidak sah dan nilai nol yang sah, json_last_error() boleh digunakan. Fungsi ini mengembalikan ralat penghuraian JSON yang terbaharu, jika ada.
if ($data === null && json_last_error() !== JSON_ERROR_NONE) { echo "incorrect data"; }
Dengan menggabungkan teknik ini, kami boleh mengesan dan mengendalikan data JSON yang tidak sah dalam PHP dengan berkesan menggunakan json_decode().
Atas ialah kandungan terperinci Bagaimana untuk Mengesan Data JSON Cacat dalam PHP Menggunakan `json_decode()`?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!