Maison >développement back-end >Problème PHP >Comment convertir json en tableau en php (trois méthodes)

Comment convertir json en tableau en php (trois méthodes)

PHPz
PHPzoriginal
2023-04-18 09:47:554226parcourir

Lors du développement d'applications Web ou d'applications avec séparation front-end et back-end, il est souvent nécessaire de convertir les données JSON en tableaux pour le traitement. En tant que langage prenant en charge le traitement des données JSON, PHP propose plusieurs méthodes pour répondre à cette exigence. Ce qui suit présentera trois méthodes couramment utilisées et leurs scénarios d'utilisation.

Utiliser json_decode

json_decode est l'une des fonctions intégrées de PHP qui peut être utilisée pour convertir des données au format JSON en un tableau en PHP. Utiliser json_decode est très simple, il suffit de transmettre la chaîne JSON qui doit être analysée. Le deuxième paramètre de

$jsonStr = '{"name": "Tom", "age": 20, "gender": "male"}';
$array = json_decode($jsonStr, true);

json_decode spécifie le type de la valeur de retour. Le définir sur true ici indique le type de tableau de retour. Si le deuxième paramètre n'est pas transmis, un type d'objet stdClass est renvoyé. Si le JSON n'est pas bien formé, NULL sera renvoyé.

Cette méthode convient aux situations où le format de données JSON est simple et le niveau n'est pas profond. Cependant, si les données JSON sont complexes et que le niveau est profond, plusieurs boucles foreach doivent être imbriquées pour traiter le tableau, ce qui affecte. la lisibilité et l’efficacité du code.

Utilisation des fonctions d'extension PHP

PHP fournit également une fonction d'extension json_decode_array, qui a la même fonction que json_decode et est utilisée pour convertir les données au format JSON en un tableau PHP. Mais contrairement à json_decode, json_decode_array n'a pas besoin de passer le deuxième paramètre pour spécifier le type de valeur de retour, mais renvoie directement le type de tableau.

$jsonStr = '{"name": "Tom", "age": 20, "gender": "male"}';
$array = json_decode_array($jsonStr);

Comparé à json_decode, json_decode_array a des performances plus élevées car il est écrit en C et peut être traité plus rapidement que le code PHP. Par conséquent, lorsque vous devez traiter efficacement des données au format JSON, utiliser json_decode_array est un choix judicieux.

Cependant, il convient de noter que json_decode_array est une fonction d'extension de PHP, pas une fonction intégrée. Vous devez installer la bibliothèque d'extension correspondante pour l'utiliser. Sous les systèmes Windows, vous pouvez décommenter extension=php_json.dll dans php.ini pour activer la bibliothèque d'extensions. Sous les systèmes Linux, vous pouvez utiliser la commande pecl pour l'installer.

Utilisation du package Composer

En plus des fonctions et extensions propres à PHP, nous pouvons également utiliser des composants tiers pour implémenter la fonction de conversion de JSON en tableau. La méthode présentée dans cet article consiste à utiliser Composer pour installer une bibliothèque de traitement JSON tierce appelée JsonMachine.

// 安装 JsonMachine 库
composer require salsify/json-machine

$jsonStr = '{"name": "Tom", "age": 20, "gender": "male"}';

// 将 JSON 转化为数组
$array = json_machine($jsonStr);

La fonction json_machine fournie par JsonMachine peut recevoir une variété de formes de paramètres différentes, notamment des chaînes JSON, des tableaux d'origine PHP, des objets stdClass, etc., et ses résultats de retour sont tous des types de tableaux PHP.

JsonMachine prend également en charge le renvoi des données JSON sous forme d'itérateurs pour réduire l'utilisation de la mémoire et améliorer les performances du code.

Résumé

Que vous utilisiez la fonction intégrée PHP json_decode ou la fonction d'extension json_decode_array, ou que vous utilisiez la bibliothèque tierce JsonMachine, vous pouvez répondre aux besoins de conversion de JSON en tableau PHP, et la méthode d'utilisation est relativement simple . Nous pouvons choisir différentes méthodes en fonction de nos propres besoins pour obtenir la meilleure efficacité et lisibilité du code.

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