Maison  >  Article  >  développement back-end  >  Comment convertir un tableau php en objet json

Comment convertir un tableau php en objet json

PHPz
PHPzoriginal
2023-04-17 16:36:451026parcourir

En PHP, le tableau est l'une des structures de données courantes. Aujourd'hui, en raison de la popularité croissante de l'échange de données et de la séparation front-end et back-end, on peut dire que le format de données JSON est largement utilisé. Alors comment convertir un tableau en PHP en objet JSON ? Cet article donnera la réponse.

1. Utilisez la fonction intégrée PHP json_encode()

PHP fournit une fonction intégrée json_encode() pour convertir les tableaux PHP en objets JSON. La fonction json_encode() accepte une variable PHP comme paramètre et code la variable dans une chaîne au format JSON. Vous trouverez ci-dessous un exemple d'utilisation de la fonction json_encode() pour convertir un tableau PHP en objet JSON.

$my_array = [1, 2, 'hello', 'world'];
 
$json_string = json_encode($my_array);
 
echo $json_string;

La sortie du code ci-dessus est la suivante :

[1,2,"hello","world"]

Il convient de noter que le deuxième paramètre facultatif $option de la fonction json_encode() est par défaut à 0, ce qui signifie qu'il n'y a pas d'indentation dans le résultat de sortie. Vous pouvez rendre les résultats plus lisibles en définissant ce paramètre sur JSON_PRETTY_PRINT.

2. Utilisez la fonction intégrée PHP json_decode()

Correspondant à la fonction json_encode(), PHP fournit également la fonction json_decode() pour convertir les chaînes au format JSON en tableaux PHP. Voici comment utiliser json_decode(. ) fonction vers Exemple de conversion d'un objet JSON en tableau PHP.

$json_string = '[1,2,"hello","world"]';
 
$my_array = json_decode($json_string);
 
var_dump($my_array);

Le résultat de sortie est :

array(4) { [0]=> int(1) [1]=> int(2) [2]=> string(5) "hello" [3]=> string(5) "world" }

Il convient de noter que la fonction json_decode() convertit les chaînes JSON en objets stdClass par défaut. Si vous souhaitez le convertir en tableau PHP, vous pouvez définir le deuxième paramètre de la fonction json_decode() sur true, comme indiqué ci-dessous :

$json_string = '{"name": "Tom", "age": 18}';
 
$my_array = json_decode($json_string, true);
 
var_dump($my_array);

Le résultat de sortie est :

array(2) { ["name"]=> string(3) "Tom" ["age"]=> int(18) }

3 Utilisez la bibliothèque de classes PHP

. Si pour des opérations d'édition plus avancées sur les données JSON, vous pouvez utiliser les bibliothèques JSON en PHP, telles que pecl-json ou jsonlint. Ces bibliothèques offrent plus d'options et de fonctionnalités que les fonctions json_encode() et json_decode().

Par exemple, en utilisant la bibliothèque de classes pecl-json, vous pouvez facilement convertir un tableau PHP en objet JSON :

use \JsonSerializable;
 
class MyArray implements JsonSerializable
{
    private $arr;
 
    public function __construct($arr = [])
    {
        $this->arr = $arr;
    }
 
    public function jsonSerialize()
    {
        return $this->arr;
    }
}
 
$my_array = new MyArray([1, 2, 'hello', 'world']);
 
$json_string = json_encode($my_array);
 
echo $json_string;

Le résultat de sortie est :

[1,2,"hello","world"]

Il convient de noter que lors de la conversion d'un objet PHP en objet JSON , vous devez laisser Cet objet PHP implémente l'interface JsonSerialalisable. Après avoir implémenté l'interface JsonSerializing, la fonction json_encode() appellera la méthode d'interface jsonSerialize() pour convertir l'objet PHP en objet JSON.

Conclusion

Cet article explique comment convertir un tableau en objet JSON en PHP. En utilisant les fonctions intégrées de PHP json_encode() et json_decode(), nous pouvons facilement convertir les formats de données de base. Si vous devez effectuer des opérations d'édition de données JSON plus avancées, vous pouvez utiliser la bibliothèque de classes JSON en PHP. Regardons à nouveau notre exemple. Sans utiliser d'autres bibliothèques, vous pouvez convertir des tableaux en json comme ceci :

$my_array = [1, 2, 'hello', 'world'];

$json_string = json_encode($my_array);

$result_array = json_decode($json_string, true);

Si simple et si pratique !

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