Rumah >pembangunan bahagian belakang >tutorial php >Mengapa Adakah `json_decode()` Mengembalikan NULL Walaupun JSON Sah?

Mengapa Adakah `json_decode()` Mengembalikan NULL Walaupun JSON Sah?

Susan Sarandon
Susan Sarandonasal
2024-11-28 16:12:15792semak imbas

Why Does `json_decode()` Return NULL Despite Valid JSON?

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!

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