Maison  >  Article  >  développement back-end  >  Comment convertir des données JSON en objet tableau en php

Comment convertir des données JSON en objet tableau en php

PHPz
PHPzoriginal
2023-04-23 09:08:33448parcourir

Pendant le processus de développement, nous impliquons souvent la conversion des données JSON en tableaux ou tableaux d'objets. En tant que langage de programmation côté serveur populaire, PHP fournit également des méthodes pratiques pour effectuer des opérations de conversion lors du traitement des données JSON. Cet article utilise un exemple pour montrer comment convertir des données JSON en un tableau d'objets tableau.

Connaissances pré-requises

Avant d'expliquer les opérations spécifiques, vous devez comprendre quelques connaissances de base en PHP.

JSON

JSON (abréviation de JavaScript Object Notation) est un format d'échange de données léger. Il représente les données sous forme de paires clé-valeur ou au format tableau. Les données JSON peuvent être représentées à l'aide d'objets et de tableaux en JavaScript.

Array en PHP

En PHP, un tableau est une structure qui collecte des données. Il peut stocker différents types de valeurs dans un tableau, chaque valeur est associée à une clé, et la clé peut être n'importe quelle chaîne ou entier.

Objet stdClass en PHP

L'objet stdClass est un modèle objet très simple en PHP. Il peut attribuer dynamiquement des propriétés selon les besoins, il peut également convertir des objets en tableaux et des tableaux en objets, ce qui est très utile pour le traitement des données JSON. est très utile.

Convertir Json en tableau

Voyons d'abord comment convertir des données JSON en un tableau PHP. PHP fournit une fonction intégrée json_decode(), qui peut convertir une chaîne JSON en un tableau PHP. L'utilisation de cette fonction est la suivante :

mixed json_decode ( string $json [, bool $assoc = FALSE [, int $depth = 512 [, int $options = 0 ]]] )

Parmi eux, $json représente la chaîne JSON qui doit être convertie ; $assoc représente s'il faut renvoyer un tableau associatif (la valeur par défaut est false, c'est-à-dire qu'un objet est renvoyé) ; $profondeur représente la profondeur de récursion maximale (la valeur par défaut est 512) ; $options représente les options de conversion (la valeur par défaut est 0).

Voici un exemple simple, en supposant que nous avons un fichier contenant des données JSON data.json :

{
    "name": "Typechoer",
    "age": 25,
    "gender": "male",
    "skills": ["PHP", "JavaScript", "CSS"]
}

Nous pouvons utiliser le code suivant pour lire les données JSON et les convertir en un tableau PHP :

$json = file_get_contents('data.json');
$data = json_decode($json, true);
print_r($data);

Le résultat est le suivant :

Array
(
    [name] => Typechoer
    [age] => 25
    [gender] => male
    [skills] => Array
        (
            [0] => PHP
            [1] => JavaScript
            [2] => CSS
        )
)

Comme vous pouvez le voir, nous avons implémenté l'opération de conversion des données JSON en un tableau PHP, et le type de données reste inchangé.

Convertir Json en tableau d'objets

En plus de convertir les données JSON en tableaux PHP, vous pouvez également les convertir en tableaux d'objets. Un tableau d'objets est un tableau d'objets stdClass, où chaque objet représente un élément. Nous n'avons pas besoin de nous soucier des noms de champs de l'objet, il nous suffit d'y accéder via les propriétés de l'objet. Voici une méthode pour convertir les données JSON en un tableau d'objets PHP :

json_decode(string, false, 512, JSON_OBJECT_AS_ARRAY);

Comme vous pouvez le voir, il suffit de définir le paramètre $assoc sur false et le paramètre $options sur JSON_OBJECT_AS_ARRAY, puis d'utiliser la fonction json_decode() pour effectuer l'opération de conversion.

De même, sur la base des données JSON ci-dessus, nous pouvons utiliser le code suivant pour le convertir en un tableau d'objets PHP :

$json = file_get_contents('data.json');
$data = json_decode($json, false, 512, JSON_OBJECT_AS_ARRAY);
print_r($data);

Le résultat de sortie est le suivant :

Array
(
    [name] => Typechoer
    [age] => 25
    [gender] => male
    [skills] => Array
        (
            [0] => PHP
            [1] => JavaScript
            [2] => CSS
        )
)

Puisque nous utilisons un tableau d'objets, nous pouvons utiliser un objet propriétés pour accéder aux données, telles que :

echo $data[0]->name; // Typechoer
echo $data[0]->skills[2]; // CSS

Json converti en tableau multidimensionnel

Si les données JSON contiennent des sous-objets ou des tableaux imbriqués, nous pouvons toujours conserver les caractéristiques multidimensionnelles des données lors de leur conversion à un tableau PHP ou un tableau d'objets.

Ce qui suit est un exemple de données JSON avec une structure imbriquée :

{
    "account": {
        "name": "Tom",
        "age": 28
    },
    "courses": [
        {
            "name": "PHP",
            "hour": 80
        },
        {
            "name": "JavaScript",
            "hour": 60
        }
    ]
}

Nous pouvons utiliser le code suivant pour le convertir en un tableau PHP :

$json = file_get_contents('data.json');
$data = json_decode($json, true);
print_r($data);

Le résultat est le suivant :

Array
(
    [account] => Array
        (
            [name] => Tom
            [age] => 28
        )

    [courses] => Array
        (
            [0] => Array
                (
                    [name] => PHP
                    [hour] => 80
                )

            [1] => Array
                (
                    [name] => JavaScript
                    [hour] => 60
                )

        )

)

De même, nous pouvons également convertir dans un tableau d'objets PHP :

$json = file_get_contents('data.json');
$data = json_decode($json, false, 512, JSON_OBJECT_AS_ARRAY);
print_r($data);

Le résultat de sortie est le suivant :

Array
(
    [account] => Array
        (
            [name] => Tom
            [age] => 28
        )

    [courses] => Array
        (
            [0] => Array
                (
                    [name] => PHP
                    [hour] => 80
                )

            [1] => Array
                (
                    [name] => JavaScript
                    [hour] => 60
                )

        )

)

On peut voir que la structure des données multidimensionnelles est préservée.

Résumé

Dans cet article, nous avons présenté comment convertir des données JSON en un tableau PHP ou un tableau d'objets. Grâce à la fonction json_decode() intégrée de PHP, nous pouvons rapidement convertir entre les données JSON et les données PHP. Si vous avez besoin de gérer des données JSON en cours de développement, ces connaissances vous aideront certainement.

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