Heim > Backend-Entwicklung > PHP-Tutorial > Wie behebe ich „SYNTAX ERROR' in JSON_DECODE() trotz gültigem JSON-Format?

Wie behebe ich „SYNTAX ERROR' in JSON_DECODE() trotz gültigem JSON-Format?

DDD
Freigeben: 2024-10-22 22:02:29
Original
686 Leute haben es durchsucht

How to Resolve

JSON_ERROR_SYNTAX trotz gültigem JSON auf Online-Formatierern

Es wird eine „SYNTAX ERROR“-Antwort von json_decode() festgestellt, während das JSON auf externen Formatierern gültig erscheint kann rätselhaft sein. Hier ist eine umfassende Lösung:

Entfernung versteckter Zeichen:

Unsichtbare Zeichen können Syntaxfehler verursachen. Entfernen Sie diese Zeichen mit dem folgenden Code:

<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>
Nach dem Login kopieren

Dekodierung des bereinigten JSON:

Da nun die versteckten Zeichen entfernt wurden, dekodieren Sie den JSON:

<code class="php">$obj = json_decode($json);</code>
Nach dem Login kopieren

Fehlerbehandlung:

Wenn die Dekodierung immer noch fehlschlägt, überprüfen Sie den spezifischen Fehlercode mit 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>
Nach dem Login kopieren

Wenn Sie diese Schritte befolgen, können Sie kann JSON-Syntaxfehler beheben und JSON-Daten erfolgreich dekodieren. Die json_last_error_msg()-Funktion von PHP 5.5 bietet zusätzliche Fehlerdetails, ist jedoch möglicherweise nicht erforderlich, nachdem versteckte Zeichen und Dekodierungsprobleme behoben wurden.

Das obige ist der detaillierte Inhalt vonWie behebe ich „SYNTAX ERROR' in JSON_DECODE() trotz gültigem JSON-Format?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Quelle:php
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage