Heim >Backend-Entwicklung >PHP-Problem >Was tun, wenn das Parsen von PHP json_decode fehlschlägt?
Lösungen für PHP-json_decode-Analysefehler: 1. Erhalten Sie den Fehlercode über json_last_error und andere Funktionen. 2. Entfernen Sie illegale utf8-Zeichen entsprechend dem utf8-Codierungsbereich.
Die Betriebsumgebung dieses Artikels: Windows 7-System, PHP-Version 7.1, DELL G3-Computer
Was soll ich tun, wenn das Parsen von PHP json_decode fehlschlägt?
php json_decode-Analysefehler und Fehlerbehandlung
Wenn Sie einen JSON-Inhalt erhalten, können Sie normalerweise json_decode($content, true) zur Verwendung direkt in ein Array konvertieren, was sehr praktisch ist.
Wenn jedoch mit der Schnittstelle, die Ihnen JSON-Inhalte bereitstellt, etwas nicht stimmt und das bereitgestellte JSON nicht dem Standard entspricht oder einfach Fehler aufweist, müssen Sie einen Weg finden, das Problem zu finden.
Werfen wir zunächst einen Blick auf das Handbuch von json_encode.
https://www.php.net/manual/en/function.json-last-error.php.
Gibt NULL zurück, wenn es fehlschlägt wissen wir, wo der Fehler liegt? Wolltuch?
1. Holen Sie sich den Fehlercode
php hat eine
json_last_errorEs wird der Fehler zurückgegeben Code, der sagt, was bei uns schief gelaufen ist. Sie können den Fehlercode nicht verstehen? Sie können json_last_error_msg verwenden, siehe
https://www.php.net/manual/en/function.json-last-error-msg.php
Aber json_last_error_msg ist nur in der PHP-Version >= 5.5.0 verfügbar, wenn die Version Low, definieren Sie einfach selbst eine.
2. Die Low-Version von PHP-JSON-Fehlercodes sind unvollständig.
Wenn Sie jedoch auf das Handbuch achten, werden Sie feststellen, dass viele der durch
json_last_error3. Wie man mit illegalen UTF8-Zeichen in JSON umgehtJe nach Codierungsbereich von UTF8 können illegale UTF8-Zeichen entfernt werden.
Siehe https://magp.ie/2011/01/06/remove-non-utf8-characters-from-string-with-php/// $json = '{"a":1,"b":2,"c":3,"d":4,"e":5, "name":"Corwien"}'; $json = '{"a":1,"b":2,"c":3,"d":4,"e":5, "name":}'; //错误的json格式 $result = json_decode($json, true); if(!$result) { //error handle ,错误处理 $ret = json_last_error(); print_r($ret); //打印为: 4,查错误信息表,可知是语法错误 } json_last_error错误msg对照表: 0 = JSON_ERROR_NONE 1 = JSON_ERROR_DEPTH 2 = JSON_ERROR_STATE_MISMATCH 3 = JSON_ERROR_CTRL_CHAR 4 = JSON_ERROR_SYNTAX 5 = JSON_ERROR_UTF8Ersetzen Sie die unzulässigen Zeichen durch ? und ändern Sie sie nach Bedarf. Empfohlenes Lernen: „
PHP-Video-Tutorial
“
Das obige ist der detaillierte Inhalt vonWas tun, wenn das Parsen von PHP json_decode fehlschlägt?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!