Maison  >  Article  >  développement back-end  >  Parlons de la façon de convertir les données json en tableau ou objet php

Parlons de la façon de convertir les données json en tableau ou objet php

PHPz
PHPzoriginal
2023-04-17 15:25:58574parcourir

Le format JSON est un format d'échange de données léger En raison de ses avantages de simplicité, de facilité d'utilisation, de rapidité et d'efficacité, il est devenu un format de données largement utilisé. En PHP, nous pouvons utiliser la fonction json_decode() pour convertir une chaîne JSON en un tableau ou un objet PHP. Cet article expliquera comment convertir des données au format JSON en tableaux ou objets PHP, et explorera également comment gérer les tableaux et les objets en JSON.

1. Convertir une chaîne JSON en tableau PHP

Ce qui suit est un exemple de données JSON :

{
   "name": "Tom",
   "age": 26,
   "email": "tom@example.com",
   "hobbies": ["reading", "swimming", "traveling"],
   "address": {
      "city": "Beijing",
      "province": "Beijing",
      "country": "China"
   }
}

Nous pouvons utiliser la fonction json_decode() pour la convertir en tableau PHP :

$json = '{
   "name": "Tom",
   "age": 26,
   "email": "tom@example.com",
   "hobbies": ["reading", "swimming", "traveling"],
   "address": {
      "city": "Beijing",
      "province": "Beijing",
      "country": "China"
   }
}';

$array = json_decode($json, true);

Lors de l'appel de la fonction json_decode() , Le premier paramètre est passé dans la chaîne JSON à convertir, et le deuxième paramètre est passé dans une valeur booléenne pour préciser si l'objet converti est un tableau (true) ou un objet (false), car par défaut Le json_decode() La fonction convertit une chaîne JSON en objet.

Nous définissons le deuxième paramètre sur true, puis la valeur de retour est un tableau PHP, et le résultat est le suivant :

Array
(
    [name] => Tom
    [age] => 26
    [email] => tom@example.com
    [hobbies] => Array
        (
            [0] => reading
            [1] => swimming
            [2] => traveling
        )

    [address] => Array
        (
            [city] => Beijing
            [province] => Beijing
            [country] => China
        )

)

2 Convertissez la chaîne JSON en un objet PHP

Si le deuxième paramètre de json_decode(). function est Si elle est définie sur false, un objet PHP est renvoyé. Voici un exemple de code :

$json = '{
   "name": "Tom",
   "age": 26,
   "email": "tom@example.com",
   "hobbies": ["reading", "swimming", "traveling"],
   "address": {
      "city": "Beijing",
      "province": "Beijing",
      "country": "China"
   }
}';

$obj = json_decode($json, false);

Après avoir défini le deuxième paramètre sur false, $obj est un objet PHP, et le résultat est le suivant :

stdClass Object
(
    [name] => Tom
    [age] => 26
    [email] => tom@example.com
    [hobbies] => Array
        (
            [0] => reading
            [1] => swimming
            [2] => traveling
        )

    [address] => stdClass Object
        (
            [city] => Beijing
            [province] => Beijing
            [country] => China
        )

)

3. Traitement des tableaux en JSON

Lorsque les données JSON contiennent des tableaux, nous Il peut toujours être converti en tableau ou objet PHP à l'aide de la fonction json_decode(). Voici un exemple de données JSON contenant un tableau :

{
   "name": "Tom",
   "age": 26,
   "email": "tom@example.com",
   "hobbies": ["reading", "swimming", "traveling"],
   "scores": [
      {"subject": "math", "score": 90},
      {"subject": "physics", "score": 85},
      {"subject": "chemistry", "score": 78}
   ]
}

On peut utiliser la fonction json_decode() pour le convertir en tableau PHP :

$json = '{
   "name": "Tom",
   "age": 26,
   "email": "tom@example.com",
   "hobbies": ["reading", "swimming", "traveling"],
   "scores": [
      {"subject": "math", "score": 90},
      {"subject": "physics", "score": 85},
      {"subject": "chemistry", "score": 78}
   ]
}';

$array = json_decode($json, true);

Le résultat converti est le suivant :

Array
(
    [name] => Tom
    [age] => 26
    [email] => tom@example.com
    [hobbies] => Array
        (
            [0] => reading
            [1] => swimming
            [2] => traveling
        )

    [scores] => Array
        (
            [0] => Array
                (
                    [subject] => math
                    [score] => 90
                )

            [1] => Array
                (
                    [subject] => physics
                    [score] => 85
                )

            [2] => Array
                (
                    [subject] => chemistry
                    [score] => 78
                )

        )

)

On peut également convertir la première partie de la fonction json_decode() Définissez les deux paramètres sur false pour les convertir en objets PHP. Le résultat converti est le suivant :

stdClass Object
(
    [name] => Tom
    [age] => 26
    [email] => tom@example.com
    [hobbies] => Array
        (
            [0] => reading
            [1] => swimming
            [2] => traveling
        )

    [scores] => Array
        (
            [0] => stdClass Object
                (
                    [subject] => math
                    [score] => 90
                )

            [1] => stdClass Object
                (
                    [subject] => physics
                    [score] => 85
                )

            [2] => stdClass Object
                (
                    [subject] => chemistry
                    [score] => 78
                )

        )

)

4. Traitement des objets en JSON

Lorsque les données JSON contiennent des objets, on peut également utiliser la fonction json_decode() pour les convertir en tableau ou objet PHP. Voici un exemple de données JSON contenant des objets :

{
   "name": "Tom",
   "age": 26,
   "email": "tom@example.com",
   "hobbies": ["reading", "swimming", "traveling"],
   "address": {
      "city": "Beijing",
      "province": "Beijing",
      "country": "China"
   },
   "scores": {
      "math": 90,
      "physics": 85,
      "chemistry": 78
   }
}

Nous pouvons toujours utiliser la fonction json_decode() pour les convertir en un tableau ou un objet PHP :

$json = '{
   "name": "Tom",
   "age": 26,
   "email": "tom@example.com",
   "hobbies": ["reading", "swimming", "traveling"],
   "address": {
      "city": "Beijing",
      "province": "Beijing",
      "country": "China"
   },
   "scores": {
      "math": 90,
      "physics": 85,
      "chemistry": 78
   }
}';

$array = json_decode($json, true);
$obj = json_decode($json, false);

Les tableaux et objets PHP convertis sont les suivants :

Array
(
    [name] => Tom
    [age] => 26
    [email] => tom@example.com
    [hobbies] => Array
        (
            [0] => reading
            [1] => swimming
            [2] => traveling
        )

    [address] => Array
        (
            [city] => Beijing
            [province] => Beijing
            [country] => China
        )

    [scores] => Array
        (
            [math] => 90
            [physics] => 85
            [chemistry] => 78
        )

)

stdClass Object
(
    [name] => Tom
    [age] => 26
    [email] => tom@example.com
    [hobbies] => Array
        (
            [0] => reading
            [1] => swimming
            [2] => traveling
        )

    [address] => stdClass Object
        (
            [city] => Beijing
            [province] => Beijing
            [country] => China
        )

    [scores] => stdClass Object
        (
            [math] => 90
            [physics] => 85
            [chemistry] => 78
        )

)

5 . Convertir Convertir un tableau ou un objet PHP en JSON

Après avoir terminé l'analyse et la manipulation des données JSON, nous devrons peut-être également convertir le tableau ou l'objet PHP en une chaîne au format JSON pour un traitement ou une transmission ultérieure. Vous pouvez utiliser la fonction json_encode() pour convertir un tableau ou un objet PHP en une chaîne au format JSON. Voici un exemple de code :

$array = array(
   'name' => 'Tom',
   'age' => 26,
   'email' => 'tom@example.com',
   'hobbies' => array('reading', 'swimming', 'traveling'),
   'address' => array(
      'city' => 'Beijing',
      'province' => 'Beijing',
      'country' => 'China'
   ),
   'scores' => array(
      'math' => 90,
      'physics' => 85,
      'chemistry' => 78
   )
);

$json = json_encode($array);

Après avoir appelé la fonction json_encode(), la valeur de $json est la chaîne de format JSON convertie, et le résultat est le suivant :

{
   "name":"Tom",
   "age":26,
   "email":"tom@example.com",
   "hobbies":["reading","swimming","traveling"],
   "address":{
      "city":"Beijing",
      "province":"Beijing",
      "country":"China"
   },
   "scores":{
      "math":90,
      "physics":85,
      "chemistry":78
   }
}

6. Convertissez le tableau ou l'objet PHP en JSON et sortie

Si Si vous avez besoin de sortir directement des données au format JSON en PHP, nous pouvons directement sortir le résultat après avoir appelé la fonction json_encode(). L'exemple suivant :

$array = array(
   'name' => 'Tom',
   'age' => 26,
   'email' => 'tom@example.com',
   'hobbies' => array('reading', 'swimming', 'traveling'),
   'address' => array(
      'city' => 'Beijing',
      'province' => 'Beijing',
      'country' => 'China'
   ),
   'scores' => array(
      'math' => 90,
      'physics' => 85,
      'chemistry' => 78
   )
);

header('Content-Type: application/json');
echo json_encode($array);

Dans l'exemple ci-dessus, nous définissons les informations d'en-tête de réponse via la fonction header() et définissons le ContentType sur application/json, indiquant que les données renvoyées sont au format JSON. Utilisez ensuite echo pour afficher les données JSON converties.

Conclusion

Cet article présente principalement comment convertir des données JSON en tableaux ou objets PHP. Il explore également comment gérer des tableaux et des objets en JSON, et montre comment convertir des tableaux ou des objets PHP en chaînes au format JSON. J'espère que cet article pourra aider les développeurs PHP.

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