Maison >développement back-end >Problème PHP >PHP convertit json en objet tableau

PHP convertit json en objet tableau

PHPz
PHPzoriginal
2023-05-11 09:26:36495parcourir

Dans le développement web, le format JSON (JavaScript Object Notation) est devenu un format d'échange de données largement utilisé. En tant que langage côté serveur populaire, PHP prend naturellement en charge la conversion de chaînes au format JSON en objets tableau. Cet article explique comment convertir JSON en objet tableau à l'aide de PHP.

  1. Utilisez la fonction json_decode

La fonction json_decode intégrée de PHP peut convertir les chaînes au format JSON en objets de tableau PHP. Voici un exemple d'utilisation de base :

<?php
$json_str = '{"name": "张三", "age": 20}';
$array_obj = json_decode($json_str);
print_r($array_obj);
?>

Dans le code ci-dessus, nous définissons d'abord une chaîne au format JSON $json_str, qui contient un attribut de chaîne nommé name et un entier nommé age, puis utilisons la fonction json_decode pour convertir la chaîne. dans un objet tableau $array_obj, et enfin utilisez la fonction print_r pour générer l'objet tableau. Le résultat de l'exécution de ce script est :

stdClass Object
(
    [name] => 张三
    [age] => 20
)

Vous pouvez voir que la fonction json_decode convertit avec succès la chaîne au format JSON en un objet tableau.

  1. Utilisez le deuxième paramètre pour spécifier le type du résultat de retour

Par défaut, la fonction json_decode renvoie l'objet stdClass, qui est une classe standard intégrée à PHP et utilisée pour représenter n'importe quel type de données. Si vous souhaitez convertir une chaîne JSON en tableau associatif (c'est-à-dire utiliser le nom de l'attribut comme nom de clé), vous pouvez définir le deuxième paramètre sur true, comme indiqué ci-dessous :

<?php
$json_str = '{"name": "张三", "age": 20}';
$array_obj = json_decode($json_str, true);
print_r($array_obj);
?>

Définissez le deuxième paramètre sur true ici, et la fonction json_decode renverra un tableau associatif, en utilisant les noms de propriétés comme clés. Le résultat obtenu en exécutant ce script est :

Array
(
    [name] => 张三
    [age] => 20
)

Comme vous pouvez le voir, la fonction json_decode renvoie un tableau associatif, différent de l'exemple de sortie précédent.

  1. Gérer l'échec de la conversion

Lorsque la chaîne au format JSON ne peut pas être convertie en un objet tableau, la fonction json_decode renverra null. Par conséquent, nous devons gérer les cas d’échec de conversion dans notre code. Voici un exemple :

<?php
$json_str = 'invalid json string';
$array_obj = json_decode($json_str);
if(is_null($array_obj)) {
    echo('JSON转换失败');
} else {
    print_r($array_obj);
}
?>

Dans le code ci-dessus, nous attribuons une chaîne JSON invalide à la variable $json_str puis utilisons la fonction json_decode pour convertir la chaîne. Étant donné que la chaîne ne peut pas être convertie en objet tableau, la fonction json_decode renverra null. Par conséquent, nous utilisons la fonction is_null pour déterminer si le résultat renvoyé est nul. Si tel est le cas, « Échec de la conversion JSON » sera affiché, sinon l'objet tableau converti sera affiché. Le résultat obtenu en exécutant ce script est :

JSON转换失败

Conclusion

En PHP, utiliser la fonction json_decode pour convertir une chaîne au format JSON en un objet tableau est une opération très basique. Cet article présente l'utilisation de base de la fonction json_decode ainsi que quelques conseils et précautions courants. En apprenant ces points de connaissances, les lecteurs peuvent devenir plus compétents dans l'utilisation de PHP pour traiter les données au format 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