Maison  >  Article  >  développement back-end  >  Pourquoi est-ce que j'obtiens une erreur JSON_ERROR_SYNTAX malgré la réussite de la validation ?

Pourquoi est-ce que j'obtiens une erreur JSON_ERROR_SYNTAX malgré la réussite de la validation ?

Linda Hamilton
Linda Hamiltonoriginal
2024-10-22 22:13:02109parcourir

Why Am I Getting a JSON_ERROR_SYNTAX Error Despite Passing Validation?

Erreur de décodage JSON :

Malgré la validation via un formateur en ligne, vous rencontrez une erreur JSON_ERROR_SYNTAX lors du décodage des données JSON à l'aide de json_decode().

Caractères cachés et JSON invalide :

Le problème sous-jacent réside dans les caractères cachés qui peuvent ne pas être immédiatement apparents dans le texte JSON. Ces caractères sont souvent invisibles et perturbent la syntaxe du JSON, provoquant l'échec du décodeur.

Solution :

Pour résoudre ce problème, vous pouvez implémenter le code suivant fourni dans la réponse :

<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>

Ce code supprime les caractères indésirables, y compris les caractères de contrôle et la nomenclature UTF-8 (0xef-0xbb-0xbf). En supprimant ces caractères, le décodeur est capable d'analyser correctement les données JSON.

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!

Déclaration:
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