PHP est un langage de programmation très populaire et largement utilisé dans le domaine du développement Web. En PHP, JSON est un format d'échange de données très courant, et la conversion des chaînes JSON en tableaux est une étape essentielle lors du traitement des données JSON. Cet article vous expliquera comment convertir une chaîne JSON en tableau en PHP.
1. Qu'est-ce que JSON
Le nom complet de JSON est JavaScript Object Notation, qui est une notation d'objet JavaScript. Il s'agit d'un format d'échange de données léger. Il est basé sur la représentation objet de JavaScript, mais n'a rien à voir avec le langage JavaScript et peut être analysé et généré par différents langages de programmation.
En JSON, les données sont généralement exprimées sous la forme de "paires clé-valeur", telles que {"key1": "value1", "key2": "value2"}. Parmi eux, la clé doit être de type chaîne et la valeur peut être différents types de données tels que chaîne, nombre, type booléen, tableau, objet, etc. L'avantage de ce format de données est qu'il est facile à comprendre et à écrire, à lire et à analyser, à transmettre et à traiter. Dans le développement Web, JSON est souvent utilisé pour l'échange de données entre le front-end et le back-end.
2. Comment convertir une chaîne JSON en tableau en PHP
PHP fournit une méthode très simple pour convertir une chaîne JSON en tableau, qui est la fonction json_decode(). Cette fonction peut décoder une chaîne au format JSON en un tableau ou un objet PHP. La syntaxe de la fonction
json_decode() est la suivante :
mixed json_decode ( string $json [, bool $assoc = false [, int $depth = 512 [, int $options = 0 ]]] )
Parmi elles, $json est la chaîne JSON à décoder, $assoc indique s'il faut convertir le JSON décodé en un tableau associatif, $profondeur indique la profondeur de conversion, et $options indique les options lors de la conversion.
Lorsque le paramètre $assoc n'est pas transmis ou est faux, json_decode() convertira le JSON décodé en un objet ordinaire par défaut. Par exemple :
$json_string = '{"name":"Tom","age":18}'; $obj = json_decode($json_string); var_dump($obj);
Sortie :
object(stdClass)#1 (2) { ["name"]=> string(3) "Tom" ["age"]=> int(18) }
Le code ci-dessus décode la chaîne JSON en un objet normal. Après le décodage, vous pouvez utiliser l'opérateur -> pour obtenir les valeurs des propriétés de l'objet.
Lorsque le paramètre $assoc est défini sur true, json_decode() convertit le JSON décodé en un tableau associatif. Par exemple :
$json_string = '{"name":"Tom","age":18}'; $arr = json_decode($json_string, true); var_dump($arr);
Sortie :
array(2) { ["name"]=>string(3) "Tom" ["age"]=>int(18) }
Le code ci-dessus décode la chaîne JSON en un tableau associatif. Après le décodage, vous pouvez utiliser l'index du tableau pour obtenir la valeur de l'élément du tableau.
Il convient de noter que lors de la conversion d'une chaîne JSON en tableau associatif, s'il y a des clés en double dans le JSON, seule la dernière paire clé-valeur sera conservée.
En plus de convertir JSON en objets ordinaires et en tableaux associatifs, la fonction json_decode() fournit également une méthode pour convertir les chaînes JSON en objets PHP. Vous devez définir le paramètre $assoc sur false et utiliser la classe stdClass pour créer de nouveaux objets pendant le processus de décodage. Par exemple :
$json_string = '{"name":"Tom","age":18}'; $obj = json_decode($json_string, false, 512, JSON_OBJECT_AS_ARRAY); $php_obj = new stdClass(); foreach($obj as $key => $value) { $php_obj->$key = $value; } var_dump($php_obj);
Sortie :
object(stdClass)#4 (2) { ["name"]=> string(3) "Tom" ["age"]=> int(18) }
Le code ci-dessus décode la chaîne JSON en un objet PHP. Utilisez une boucle foreach pour transmettre les paires clé-valeur du tableau associatif au nouvel objet stdClass, puis utilisez l'opérateur $->
Conclusion
En PHP, convertir une chaîne JSON en tableau est très simple, il suffit d'utiliser la fonction json_decode(). Il est à noter que lorsqu'il y a des clés en double dans JSON, seule la dernière paire clé-valeur sera conservée.
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!