Rumah  >  Artikel  >  pembangunan bahagian belakang  >  Mengapa Saya Mendapat Ralat JSON_ERROR_SYNTAX Walaupun Lulus Pengesahan?

Mengapa Saya Mendapat Ralat JSON_ERROR_SYNTAX Walaupun Lulus Pengesahan?

Linda Hamilton
Linda Hamiltonasal
2024-10-22 22:13:02109semak imbas

Why Am I Getting a JSON_ERROR_SYNTAX Error Despite Passing Validation?

Ralat Penyahkod JSON:

Walaupun lulus pengesahan melalui pemformat dalam talian, anda menghadapi ralat JSON_ERROR_SYNTAX semasa menyahkod data JSON menggunakan json_decode().

Aksara Tersembunyi dan JSON Tidak Sah:

Isu asas terletak pada aksara tersembunyi yang mungkin tidak kelihatan serta-merta dalam teks JSON. Aksara ini selalunya tidak kelihatan dan mengganggu sintaks JSON, menyebabkan penyahkod gagal.

Penyelesaian:

Untuk menangani isu ini, anda boleh melaksanakan kod berikut yang disediakan dalam jawapannya:

<code class="php">$json = file_get_contents("http://yourwebsite.com/JsonData");

// Remove unwanted characters
for ($i = 0; $i <= 31; ++$i) {
    $json = str_replace(chr($i), "", $json);
}
$json = str_replace(chr(127), "", $json);

// Handle UTF-8 BOM
if (0 === strpos(bin2hex($json), 'efbbbf')) {
    $json = substr($json, 3);
}

$obj = json_decode($json);</code>

Kod ini mengalih keluar aksara yang tidak diingini, termasuk aksara kawalan dan UTF-8 BOM (0xef-0xbb-0xbf). Dengan mengalih keluar aksara ini, penyahkod dapat menghuraikan data JSON dengan betul.

Atas ialah kandungan terperinci Mengapa Saya Mendapat Ralat JSON_ERROR_SYNTAX Walaupun Lulus Pengesahan?. 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