Maison > développement back-end > tutoriel php > Comment résoudre « ERREUR DE SYNTAXE » dans JSON_DECODE() malgré le format JSON valide ?

Comment résoudre « ERREUR DE SYNTAXE » dans JSON_DECODE() malgré le format JSON valide ?

DDD
Libérer: 2024-10-22 22:02:29
original
685 Les gens l'ont consulté

How to Resolve

JSON_ERROR_SYNTAX malgré un JSON valide sur les formateurs en ligne

Rencontre d'une réponse "SYNTAX ERROR" de json_decode() alors que le JSON semble valide sur les formateurs externes peut être déroutant. Voici une solution complète :

Suppression des caractères cachés :

Les caractères invisibles peuvent provoquer des erreurs de syntaxe. Supprimez ces caractères à l'aide du code suivant :

<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>
Copier après la connexion

Décodage du JSON nettoyé :

Maintenant que les caractères masqués sont supprimés, décodez le JSON :

<code class="php">$obj = json_decode($json);</code>
Copier après la connexion

Gestion des erreurs :

Si le décodage échoue toujours, vérifiez le code d'erreur spécifique à l'aide de 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>
Copier après la connexion

En suivant ces étapes, vous peut rectifier les erreurs de syntaxe JSON et décoder avec succès les données JSON. La fonction json_last_error_msg() de PHP 5.5 fournit des détails supplémentaires sur les erreurs, mais peut ne pas être nécessaire après avoir résolu les caractères cachés et les problèmes de décodage.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

source:php
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal