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

Mengapa PHP `json_decode()` Saya Mengembalikan NULL Walaupun JSON Sah?

Mary-Kate Olsen
Mary-Kate Olsenasal
2024-11-27 03:52:09732semak imbas

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

PHP json_decode() Isu Penyahkodan dengan JSON yang Nampak Sah

Apabila cuba menyahkod JSON yang disimpan dalam fail teks biasa menggunakan fungsi json_decode dalam PHP , sesetengah pengguna menghadapi pulangan NULL yang tidak dapat diterangkan walaupun terdapat kesahihan JSON yang jelas struktur.

JSON yang terjejas selalunya sejajar dengan piawaian pengesahan skema JSON dan lulus ujian yang ketat pada platform seperti http://jsonlint.com/. Walau bagaimanapun, apabila menyahkod JSON dalam PHP, ia tetap sukar difahami.

Untuk menyelesaikan isu ini, pertimbangkan untuk memasukkan baris kod berikut ke dalam proses penyahkodan anda:

json_decode(preg_replace('/[\x00-\x1F\x80-\xFF]/', '', $json_string), true);

Seruan json_decode yang diubah suai ini menggantikan sebarang aksara yang tidak kelihatan atau tidak boleh dicetak dalam rentetan JSON (seperti aksara kawalan, aksara UTF-8 haram atau aksara khas) dengan rentetan kosong. Aksara ini boleh menyebabkan percanggahan semasa penyahkodan dan mengakibatkan pulangan NULL.

Dengan menapis aksara sedemikian, kod yang diubah suai memastikan fungsi json_decode boleh menghuraikan rentetan JSON dengan tepat, membolehkannya mengembalikan perwakilan PHP yang sah bagi Data JSON.

Atas ialah kandungan terperinci Mengapa PHP `json_decode()` Saya 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