Rumah >pembangunan bahagian belakang >tutorial php >Bagaimana untuk Menyelesaikan \'SYNTAX ERROR\' dalam JSON_DECODE() Walaupun Format JSON Sah?

Bagaimana untuk Menyelesaikan \'SYNTAX ERROR\' dalam JSON_DECODE() Walaupun Format JSON Sah?

DDD
DDDasal
2024-10-22 22:02:29646semak imbas

How to Resolve

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!

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