Maison > développement back-end > Problème PHP > Comment convertir une chaîne JSON en tableau et objet en php

Comment convertir une chaîne JSON en tableau et objet en php

PHPz
Libérer: 2023-03-23 11:21:27
original
1678 Les gens l'ont consulté

Dans le processus de développement PHP, la conversion de chaînes Json en objets et en tableaux est une opération courante. Json est un format de données, tandis que PHP est un langage de programmation, qui peut convertir les chaînes Json en objets et tableaux PHP via la fonction json_decode(). Dans cet article, nous apprendrons comment convertir des chaînes Json en tableaux et objets associatifs PHP en utilisant l'une des méthodes les plus courantes d'utilisation des chaînes Json.

Format de la chaîne Json

Avant d'apprendre à convertir la chaîne Json en objets et tableaux PHP, passons d'abord en revue le format de la chaîne Json. La chaîne Json est une donnée texte qui stocke les données sous forme de paires clé-valeur. Chaque paire clé-valeur est constituée d'une "clé" et d'une "valeur". La "clé" est entourée de guillemets doubles. La "valeur" peut être une valeur numérique, une chaîne, une valeur booléenne, une valeur nulle, un Json. objet ou un tableau Json.

Ce qui suit est un exemple de chaîne Json :

{
    "name": "张三",
    "age": 25,
    "gender": "男",
    "address": {
        "province": "北京",
        "city": "朝阳区",
        "street": "和平路"
    },
    "hobbies": [
        "篮球",
        "游泳",
        "旅游"
    ]
}
Copier après la connexion

Dans l'exemple ci-dessus, "nom", "âge", "sexe", "adresse" et "loisirs" sont les "clés" de cette chaîne Json, elles Correspondant respectivement à « Zhang San », « 25 », « mâle », « adresse » et « loisirs ». Parmi eux, « adresse » est un objet Json et « loisirs » est un tableau Json.

Convertir une chaîne Json en tableau PHP

En PHP, la façon de convertir une chaîne Json en tableau consiste à utiliser la fonction json_decode(). La syntaxe de la fonction json_decode() est la suivante :

mixed json_decode ( string $json [, bool $assoc = false [, int $depth = 512 [, int $options = 0 ]]] )
Copier après la connexion

Parmi eux, le paramètre $json est la chaîne Json à convertir, et le paramètre $assoc indique s'il faut convertir l'objet Json en un tableau associatif PHP (true signifie conversion en tableau associatif PHP, false signifie conversion en objet PHP), le paramètre $deep indique la profondeur maximale de conversion (la valeur par défaut est 512) et le paramètre $options indique les options lors du décodage (la valeur par défaut est 0).

Voici un exemple de conversion d'une chaîne Json en tableau PHP :

  <?php

  $json_str = &#39;{"name":"张三","age":25,"gender":"男","address":{"province":"北京","city":"朝阳区","street":"和平路"},"hobbies":["篮球","游泳","旅游"]}&#39;;

  $arr = json_decode($json_str, true);

  print_r($arr);

  ?>
Copier après la connexion

Dans l'exemple ci-dessus, nous définissons d'abord une chaîne Json $json_str. Nous utilisons la fonction json_decode() pour convertir $json_str en tableau PHP et stocker le résultat dans la variable $arr. Enfin, nous utilisons la fonction print_r() pour afficher le contenu du tableau.

Le résultat de sortie est le suivant :

Array
(
    [name] => 张三
    [age] => 25
    [gender] => 男
    [address] => Array
        (
            [province] => 北京
            [city] => 朝阳区
            [street] => 和平路
        )

    [hobbies] => Array
        (
            [0] => 篮球
            [1] => 游泳
            [2] => 旅游
        )

)
Copier après la connexion

Convertir la chaîne Json en objet PHP

En plus de convertir la chaîne Json en tableau PHP, vous pouvez également la convertir en objet PHP. Ce processus peut également être implémenté à l'aide de la fonction json_decode(), il suffit de définir le deuxième paramètre sur false ou de l'omettre.

Voici un exemple de conversion d'une chaîne Json en objet PHP :

  <?php

  $json_str = &#39;{"name":"张三","age":25,"gender":"男","address":{"province":"北京","city":"朝阳区","street":"和平路"},"hobbies":["篮球","游泳","旅游"]}&#39;;

  $obj = json_decode($json_str);

  print_r($obj);

  ?>
Copier après la connexion

Dans l'exemple ci-dessus, nous définissons le deuxième paramètre sur false, et le résultat sera converti en objet PHP.

Le résultat de sortie est le suivant :

stdClass Object
(
    [name] => 张三
    [age] => 25
    [gender] => 男
    [address] => stdClass Object
        (
            [province] => 北京
            [city] => 朝阳区
            [street] => 和平路
        )

    [hobbies] => Array
        (
            [0] => 篮球
            [1] => 游泳
            [2] => 旅游
        )

)
Copier après la connexion

Convertissez les objets de la chaîne Json en un tableau PHP

Si la chaîne Json contient des objets et doit être convertie en un tableau associatif PHP, vous pouvez d'abord la convertir en Objet PHP, puis convertissez-le en tableau associatif à l'aide de la fonction typecast().

Voici un exemple de conversion d'un objet dans une chaîne Json en un tableau associatif PHP :

  <?php

  $json_str = &#39;{"name":"张三","age":25,"gender":"男","address":{"province":"北京","city":"朝阳区","street":"和平路"},"hobbies":["篮球","游泳","旅游"]}&#39;;

  $obj = json_decode($json_str);

  $arr = json_decode(json_encode($obj), true);

  print_r($arr);

  ?>
Copier après la connexion

Dans l'exemple ci-dessus, nous utilisons d'abord la fonction json_decode() pour convertir la chaîne Json en un objet PHP. Utilisez ensuite la fonction json_encode() pour convertir l'objet PHP en chaîne Json et utilisez à nouveau la fonction json_decode() pour le convertir en un tableau associatif PHP. Enfin, nous utilisons la fonction print_r() pour afficher le contenu du tableau.

Le résultat est le même que celui du premier exemple.

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!

Étiquettes associées:
source:php.cn
Déclaration de ce site Web
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
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal