Cet article vous apporte une introduction détaillée à l'utilisation de la fonction json_decode en PHP. Il a une certaine valeur de référence. Les amis dans le besoin peuvent s'y référer. J'espère qu'il vous sera utile.
Nous savons tous que la fonction json_decode peut être utilisée pour décoder des chaînes au format JSON. Notre formulaire couramment utilisé est le suivant :
<?php $json = 'some_json_data'; $result = json_decode($json, true);
En fait, la fonction json_decode() a plusieurs paramètres. Selon les paramètres passés, le comportement de la fonction sera différent.
Données décodées
Vous avez peut-être vu la fonction json_decode() signaler l'erreur suivante :
Warning: json_decode() expects parameter 1 to be string, xxx given in
Selon le message d'erreur, Le le premier paramètre doit être de type string Cependant, en fait, le premier paramètre peut être des trois types suivants :
string
null.
bool
En fonction du type de paramètres, la valeur de retour de la fonction changera également.
Valeur de retour
La fonction json_decode() renverra un objet par défaut si analyse correctement les données JSON.
Mais une fois le deuxième paramètre passé dans true ou le quatrième paramètre passé dans JSON_OBJECT_AS_ARRAY, la fonction renverra un tableau au lieu d'un objet si les données JSON sont analysées correctement. Veuillez noter mon texte en gras. La fonction json_decode() renvoie un objet ou un tableau si les données JSON sont analysées correctement, mais dans certains cas, la fonction renverra d'autres données :Profondeur de récursion
Le troisième paramètre représente la récursion. Profondeur, la profondeur doit être supérieure à 0, sinon une erreur sera signalée. Lorsque la profondeur de récursion est de 1, le résultat est nul, donc la profondeur de récursion minimale est de 2.Options de décodage
Le quatrième paramètre est utilisé pour définir les options : remplira certains caractères vides , facile à visualiser JSON_PRETTY_PRINT
Ne pas encoder JSON_UNESCAPED_SLASHES
/
Ne pas encoder les caractères Unicode, la valeur par défaut est pour encoder JSON_UNESCAPED_UNICODE
uXXXX
Gestion des erreurs
On peut aussi combiner la fonction json_last_error, json_last_error_msg(PHP >= 5.5) avec la fonction @opérateur :<?php $json = 'some_json_data'; $result = @json_decode((string)$json, true); if (json_last_error() !== JSON_ERROR_NONE) { throw new Exception(json_last_error_msg()); }
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!