Rumah >pembangunan bahagian belakang >tutorial php >Bagaimana untuk Menyelesaikan \'SYNTAX ERROR\' dalam JSON_DECODE() Walaupun Format JSON Sah?
JSON_ERROR_SYNTAX Walaupun JSON Sah pada Pemformat Dalam Talian
Menghadapi respons "SYNTAX ERROR" daripada json_decode() manakala JSON kelihatan sah pada pemformat luaran boleh membingungkan. Berikut ialah penyelesaian yang komprehensif:
Penyingkiran Aksara Tersembunyi:
Aksara tidak kelihatan boleh menyebabkan ralat sintaks. Alih keluar aksara ini menggunakan kod berikut:
<code class="php">$json = file_get_contents('http://www.mywebservice'); // Remove unwanted characters for ($i = 0; $i <= 31; ++$i) { $json = str_replace(chr($i), "", $json); } $json = str_replace(chr(127), "", $json); // Handle BOM (Byte Order Mark) if (0 === strpos(bin2hex($json), 'efbbbf')) { $json = substr($json, 3); }</code>
Menyahkod JSON yang Dibersihkan:
Sekarang aksara tersembunyi dialih keluar, nyahkod JSON:
<code class="php">$obj = json_decode($json);</code>
Pengendalian Ralat:
Jika penyahkodan masih gagal, semak kod ralat tertentu menggunakan json_last_error():
<code class="php">switch (json_last_error()) { case JSON_ERROR_NONE: echo 'JSON_ERROR_NONE'; break; case JSON_ERROR_DEPTH: echo 'JSON_ERROR_DEPTH'; break; // ... Other error codes default: echo 'Unknown Error'; break; }</code>
Dengan mengikuti langkah ini, anda boleh membetulkan ralat sintaks JSON dan berjaya menyahkod data JSON. Fungsi json_last_error_msg() PHP 5.5 menyediakan butiran ralat tambahan, tetapi mungkin tidak diperlukan selepas menyelesaikan aksara tersembunyi dan isu penyahkodan.
Atas ialah kandungan terperinci Bagaimana untuk Menyelesaikan \'SYNTAX ERROR\' dalam JSON_DECODE() Walaupun Format JSON Sah?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!