Maison >développement back-end >tutoriel php >Pourquoi mon PHP `json_decode()` renvoie-t-il NULL malgré un JSON valide ?

Pourquoi mon PHP `json_decode()` renvoie-t-il NULL malgré un JSON valide ?

Mary-Kate Olsen
Mary-Kate Olsenoriginal
2024-11-27 03:52:09791parcourir

Why Does My PHP `json_decode()` Return NULL Despite Valid JSON?

PHP json_decode() Problème de décodage avec un JSON apparemment valide

Lors de la tentative de décodage du JSON stocké dans un fichier en texte brut à l'aide de la fonction json_decode en PHP , certains utilisateurs rencontrent des retours NULL inexplicables malgré l'apparente validité de la structure JSON.

Le Le JSON concerné s'aligne souvent sur les normes de validation de schéma JSON et passe des tests rigoureux sur des plateformes telles que http://jsonlint.com/. Cependant, lors du décodage du JSON en PHP, cela reste insaisissable.

Pour résoudre ce problème, pensez à incorporer la ligne de code suivante dans votre processus de décodage :

json_decode(preg_replace('/[\x00-\x1F\x80-\xFF]/', '', $json_string), true);

Cette invocation json_decode modifiée remplace tous les caractères invisibles ou non imprimables dans la chaîne JSON (tels que les caractères de contrôle, les caractères UTF-8 illégaux ou les caractères spéciaux) avec une chaîne vide. Ces caractères peuvent provoquer des divergences lors du décodage et entraîner des retours NULL.

En filtrant ces caractères, le code modifié garantit que la fonction json_decode peut analyser la chaîne JSON avec précision, lui permettant de renvoyer une représentation PHP valide du 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