Rumah >pembangunan bahagian belakang >tutorial php >Mengapa Adakah `json_decode()` Mengembalikan NULL Walaupun JSON Sah?
json_decode() dengan JSON yang Sah: Kajian Kes
Apabila cuba menyahkod objek JSON yang disimpan dalam fail teks menggunakan json_decode() , senario mungkin timbul di mana fungsi mengembalikan NULL walaupun JSON kelihatan sah kepada pengesah JSON. Ini boleh membingungkan kerana fail boleh dibaca dan sintaks JSON kelihatan betul.
Dalam kes sedemikian, anda disyorkan untuk menyemak aksara tidak boleh dicetak yang mungkin telah merayap ke dalam rentetan JSON. Aksara ini boleh mengganggu proses penyahkodan, menyebabkan json_decode() gagal.
Untuk menyelesaikan isu ini, rentetan JSON boleh dibersihkan menggunakan ungkapan biasa untuk mengalih keluar aksara tidak boleh cetak ini. Coretan kod berikut menunjukkan perkara ini:
$json_string = preg_replace('/[\x00-\x1F\x80-\xFF]/', '', $json_string); $json_object = json_decode($json_string, true);
Kod ini menggantikan semua aksara yang tidak boleh dicetak dalam pembolehubah $json_string dengan rentetan kosong. Parameter sebenar dalam json_decode() memastikan bahawa hasil yang dinyahkod dikembalikan sebagai tatasusunan bersekutu, yang mungkin lebih mudah untuk pemprosesan selanjutnya.
Dengan mengalih keluar aksara yang tidak boleh dicetak, rentetan JSON yang telah dibersihkan boleh berjaya dinyahkodkan. , menghalang json_decode() daripada mengembalikan NULL. Ini memastikan data JSON yang sah boleh ditukar dengan pasti kepada struktur data PHP untuk kegunaan selanjutnya.
Atas ialah kandungan terperinci Mengapa Adakah `json_decode()` Mengembalikan NULL Walaupun JSON Sah?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!