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!