Aktueller Standort: Startseite> Neueste Artikel> Wie man illegale JSON -Charaktere in JSON_DECODE umgeht

Wie man illegale JSON -Charaktere in JSON_DECODE umgeht

gitbox 2025-05-29

In der PHP -Entwicklung ist JSON_DECODE eine häufige Funktion zum Parsen von JSON -Daten, aber im tatsächlichen Gebrauch stoßen Sie häufig auf das Problem der "illegalen JSON -Charaktere", die an Parsen -Misserfolg führen. In diesem Artikel wird Ihnen ein umfassendes Verständnis dafür vermittelt, wie illegale JSON -Charaktere von JSON_DECODE beheben und behoben werden können, um schnell Probleme zu finden und JSON -Parsen erfolgreich zu vervollständigen.


1. JSON_DECODE -Grundlagen und gemeinsame Fehler

JSON_DECODE wird verwendet, um JSON -Zeichenfolgen in PHP -Variablen umzuwandeln. Wenn die übergebene Zeichenfolge falsch ist, gibt die Funktion NULL zurück und der spezifische Fehlercode kann über JSON_LAST_ERROR () erhalten werden.

Häufige Fehler sind:

  • Illegaler Charakter : Nicht anerkannte Zeichen erscheinen in der JSON -Zeichenfolge.

  • Codierungsprobleme : JSON muss die UTF-8-Codierung sein. Nicht-UTF-8-Codierung führt dazu, dass die Parsen scheitert.

  • Strukturierer Fehler : Fehlende Zitate, Kommas, Nichtübereinstimmung der Klammer usw.


2. wie man illegale JSON -Charaktere behebt

2.1 Fehlercode und Fehlerinformationen anzeigen

Wenn das Parsen fehlschlägt, wird der Fehlercode und die Beschreibung bevorzugt:

 <?php
$json = '{"name": "Zhang San", "age": 28,}'; // Beachten Sie, dass am Ende ein zusätzliches Komma vorhanden ist
$data = json_decode($json, true);
if (json_last_error() !== JSON_ERROR_NONE) {
    echo 'Fehlercode:' . json_last_error() . PHP_EOL;
    echo 'Fehlermeldung:' . json_last_error_msg() . PHP_EOL;
}
?>

Dieser Code fordert einen "Grammatikfehler" auf und sagt Ihnen, dass es ein Problem mit der JSON -Struktur gibt.

2.2 Verwenden Sie Online -Tools, um die Überprüfung zu unterstützen

Bei der Begegnung mit komplexen JSON -Zeichenfolgen können Sie die Zeichenfolge in ein Online -JSON -Verifizierungs -Tool (z. B. Gitbox.net) kopieren, um die Fehlerbehebung bei Syntaxfehlern zu unterstützen.


3.. Konzentrieren Sie sich auf die Untersuchung illegaler Charaktere und Codierungsprobleme

3.1 Bestätigen Sie die String-Codierung an UTF-8

Nicht-UTF-8-codierte Zeichenfolgen können dazu führen, dass das Parsen scheitert. Sie können PHP -Funktionen verwenden, um zu erkennen und zu konvertieren:

 <?php
if (!mb_check_encoding($json, 'UTF-8')) {
    $json = mb_convert_encoding($json, 'UTF-8', 'auto');
}
?>

3.2 Aufräumen versteckter Zeichen oder geboren

Manchmal kann das Kopieren und Einfügen versteckte Charaktere (z. B. BOM) erzeugen, um das Parsen zu scheitern:

 <?php
// Entfernen UTF-8 BOM
$json = preg_replace('/^\x{FEFF}/u', '', $json);
?>

3.3 unsichtbare Zeichen filtern

Filtern Sie nicht gedruckte Charaktere mit regulären Ausdrücken heraus:

 <?php
$json = preg_replace('/[\x00-\x1F\x7F]/u', '', $json);
?>

4. Gehen Sie mit Sonderzeichen und entkommen

4.1 Escape -Doppelzitate entkommen

Wenn in JSON -Zeichenfolgen nicht entzündete Doppelzitate erscheinen, führt dies auch zu Parsenfehlern:

 <?php
$json = str_replace('"', '\"', $json);
?>

Hinweis: Diese Methode ist nur für einfache Szenarien geeignet, und für komplexe JSON wird nicht empfohlen.


5. Verwenden Sie Bibliotheken von Drittanbietern, um die Fehlertoleranz zu verbessern

Die mit PHP gelieferte JSON_Decode -Parsen ist relativ streng, sodass Sie eine tolerantere JSON -Parsing -Bibliothek in Betracht ziehen können, z. B.:

Diese Bibliotheken können Ihnen helfen, illegale JSON -Charaktere besser zu lokalisieren und zu tolerieren.


6. Zusammenfassung und Best Practices

  • Stellen Sie immer sicher, dass die JSON -Zeichenfolge korrekt formatiert ist, und vermeiden Sie Syntaxfehler wie unnötige Kommas und nicht abgestimmte Zitate.

  • Bestätigen Sie, dass die JSON-Zeichenfolge als UTF-8 codiert ist.

  • Reinigen Sie versteckte Charaktere und bom.

  • Verwenden Sie JSON_LAST_ERROR und JSON_LAST_ERROR_MSG, um die Positionierung von Problemen zu unterstützen.

  • Versuchen Sie für komplexe oder unregelmäßige JSON, ein spezielles JSON -Verifizierungswerkzeug (Gitbox.net empfohlen) zu verwenden, um die Inspektion zu unterstützen.

  • Verwenden Sie Bibliotheken von Drittanbietern, um die Robustheit der Analyse bei Bedarf zu verbessern.

Beherrschen Sie die oben genannten Untersuchungsfähigkeiten und wenn Sie auf JSON_DECODE -Analysefehler stoßen, werden Sie das Problem schnell lokalisieren und lösen!