Pendant le processus de développement, nous rencontrons souvent le besoin de convertir des données au format JSON en tableaux PHP. Ce besoin est très courant lors de l'interaction avec le front-end, de la réception de données provenant d'autres interfaces système, etc. Cet article expliquera comment convertir des données JSON en un tableau PHP en PHP.
PHP a une fonction intégrée json_decode(), qui peut convertir les chaînes au format JSON en tableaux PHP. Voici un exemple d'utilisation de la fonction json_decode() :
$json = '{"name":"john","age":30,"city":"New York"}'; $array = json_decode($json, true); print_r($array);
Le résultat de sortie est :
Array ( [name] => john [age] => 30 [city] => New York )
Dans l'exemple ci-dessus, $json est une chaîne au format JSON et $array est obtenu après conversion de $json à l'aide de json_decode () fonction tableau PHP. A noter que le deuxième paramètre de la fonction json_decode() doit être vrai, ce qui signifie convertir l'objet JSON converti en tableau PHP.
Lors du traitement de données JSON contenant du chinois, nous devons faire attention au problème de l'encodage des caractères, sinon nous pourrions rencontrer des erreurs pendant le processus de conversion.
Supposons qu'il existe une chaîne JSON contenant du chinois, comme indiqué ci-dessous :
$json = '{"name":"张三","age":30}';
Lors de l'utilisation du code ci-dessus pour convertir la chaîne JSON en un tableau PHP, une erreur d'avis sera générée, invitant "json_decode() : La chaîne d'entrée contient un message invalide Caractères UTF-8" (la chaîne JSON contient des caractères UTF-8 non valides).
En effet, la fonction json_decode() ne prend en charge que l'encodage UTF-8 par défaut et les caractères chinois de la chaîne JSON sont codés en GBK ou d'autres méthodes d'encodage, nous devons donc d'abord les convertir en encodage UTF-8, et puis effectuez la conversion JSON.
Utilisez la fonction intégrée PHP iconv() pour convertir la chaîne de l'encodage GBK en UTF-8 :
$json = '{"name":"张三","age":30}'; $json_utf8 = iconv('GBK', 'UTF-8//IGNORE', $json); $array = json_decode($json_utf8, true); print_r($array);
Le résultat est :
Array ( [name] => 张三 [age] => 30 )
Lors de la conversion des données JSON, parfois nous Nous devons le valider pour nous assurer qu'il est conforme à la structure et au format attendus.
PHP a une fonction intégrée json_last_error() qui peut obtenir le code d'erreur généré par la dernière opération de conversion JSON. Nous pouvons juger si les données JSON répondent aux attentes en fonction du code d'erreur.
Par exemple, le code suivant montre comment déterminer si une chaîne JSON illégale est comme prévu lors de la conversion :
$json = '{"name":"john","age":30,}, {"name":"mike","age":32}'; $array = json_decode($json, true); if (json_last_error() === JSON_ERROR_NONE) { echo 'JSON 格式正确'; } else { echo 'JSON 格式错误'; }
Dans le code ci-dessus, $json contient deux objets JSON, non séparés par des virgules, il s'agit d'une erreur de format JSON. Par conséquent, la fonction json_last_error() renvoie JSON_ERROR_SYNTAX, indiquant une erreur de syntaxe JSON.
Lors du traitement des données JSON, afin de faciliter le débogage et la lecture, nous pouvons également ajouter des formats tels que l'indentation et les sauts de ligne aux données JSON pour faciliter la lecture.
La fonction intégrée PHP json_encode() peut convertir les tableaux PHP en chaînes au format JSON lisibles. Par exemple :
$array = [ 'name' => 'john', 'age' => 30, 'city' => 'New York' ]; $json = json_encode($array, JSON_PRETTY_PRINT); echo $json;
Le résultat de sortie est :
{ "name": "john", "age": 30, "city": "New York" }
Dans le code ci-dessus, après avoir converti $array en une chaîne au format JSON, nous passons un paramètre JSON_PRETTY_PRINT, ce qui signifie indenter et envelopper la chaîne JSON pour améliorer sa lisibilité. .
Il est à noter que le paramètre JSON_PRETTY_PRINT dans la fonction json_encode() n'est pris en charge qu'en PHP version 5.4 et supérieure.
Résumé
En PHP, nous pouvons utiliser la fonction intégrée json_decode() pour convertir une chaîne au format JSON en un tableau PHP. Lors du traitement de données JSON contenant du chinois, vous devez faire attention aux problèmes d'encodage des caractères ; lors de la conversion des données JSON, vous devez vérifier si elles répondent aux attentes ; lors de la génération de données JSON, vous pouvez utiliser la fonction json_encode() pour optimiser leur lisibilité.
Ce qui précède est la méthode de conversion de JSON en tableau PHP. J'espère que cela vous sera utile dans le développement réel.
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!