Maison > Article > développement back-end > Comment obtenir un tableau json en PHP
Avec le développement continu d'Internet, les applications Web utilisent de plus en plus le format JSON (JavaScript Object Notation) pour transmettre des données. PHP peut facilement gérer les données JSON, ce qui en fait le langage de choix pour de nombreux développeurs Web.
Obtenir des données JSON et les convertir en tableau est une tâche très courante en PHP. Cet article présentera comment utiliser PHP pour obtenir un tableau JSON, y compris les aspects suivants :
PHP fournit un moyen simple de convertir JSON chaîne en tableau PHP, c'est-à-dire la fonction json_decode(). La fonction est utilisée comme suit :
$json_string = '{"name":"John","age":30,"city":"New York"}'; $php_array = json_decode($json_string, true); print_r($php_array);
Sortie :
Array ( [name] => John [age] => 30 [city] => New York )
Dans l'exemple ci-dessus, une chaîne JSON est d'abord définie puis convertie en tableau PHP à l'aide de la fonction json_decode().
Il est à noter que le deuxième paramètre de la fonction json_decode() est une valeur booléenne indiquant s'il faut convertir la chaîne JSON en tableau associatif. S'il est défini sur false ou non, convertit la chaîne JSON en objet. Cependant, il est plus courant de convertir une chaîne JSON en tableau.
De plus, si la chaîne JSON n'est pas valide ou contient des données JSON non valides, la fonction json_decode() renverra NULL. Par conséquent, vous devez vérifier si la valeur de retour est NULL avant d'utiliser le tableau.
Si vous souhaitez obtenir des données JSON d'autres sites Web, vous pouvez utiliser la bibliothèque PHP curl. La bibliothèque curl est une bibliothèque open source qui prend en charge plusieurs protocoles, notamment HTTP, FTP, SMTP, etc.
Voici un exemple simple d'utilisation de curl pour obtenir des données JSON :
$curl_handle = curl_init(); curl_setopt($curl_handle, CURLOPT_URL, "http://example.com/data.json"); curl_setopt($curl_handle, CURLOPT_RETURNTRANSFER, true); $json_data = curl_exec($curl_handle); curl_close($curl_handle); $php_array = json_decode($json_data, true); print_r($php_array);
Dans le code ci-dessus, créez d'abord une session curl via la fonction curl_init(). Ensuite, utilisez la fonction curl_setopt() pour définir les options, qui incluent l'URL permettant de télécharger les données JSON à partir du site Web et l'option permettant de stocker les données téléchargées dans une chaîne.
Enfin, utilisez la fonction curl_exec() pour exécuter la session curl et stocker les données JSON renvoyées dans la variable $json_data. Ensuite, utilisez la fonction json_decode() pour convertir la chaîne $json_data en un tableau PHP.
Il convient de noter que la session curl dans l'exemple ci-dessus ne ferme pas automatiquement curl après l'exécution du script. Par conséquent, la session curl doit être fermée explicitement à l'aide de la fonction curl_close().
Il existe de nombreuses bibliothèques tierces en PHP qui peuvent facilement obtenir des données JSON à partir d'autres sites Web. L'une des bibliothèques les plus populaires est Guzzle.
Guzzle est un client PHP basé sur HTTP pour envoyer des requêtes et traiter les réponses. Guzzle peut gérer automatiquement les délais d'attente, les redirections, la gestion des cookies et d'autres problèmes. Il prend également en charge le traitement asynchrone et les messages HTTP PSR-7. Voici un exemple d'utilisation de Guzzle pour obtenir des données JSON :
use GuzzleHttp\Client; $client = new Client(); $response = $client->get('http://example.com/data.json'); $json_data = $response->getBody()->getContents(); $php_array = json_decode($json_data, true); print_r($php_array);
Dans l'exemple ci-dessus, un client Guzzle est d'abord créé. Ensuite, utilisez la méthode $client->get() pour envoyer une requête GET et stocker la réponse dans la variable $response.
Utilisez la méthode $response->getBody()->getContents() pour obtenir le contenu du corps de la réponse de l'objet de réponse et le stocker dans la variable $json_data. Enfin, utilisez la fonction json_decode() pour convertir la chaîne $json_data en un tableau PHP.
Lors de l'obtention de données JSON à partir d'autres sites Web ou de la conversion d'une chaîne JSON en tableau PHP, des erreurs ou des exceptions peuvent survenir. Par conséquent, des mécanismes appropriés de gestion des erreurs et des exceptions doivent être ajoutés au code.
Par exemple, l'exemple de code suivant montre comment utiliser un bloc try-catch pour intercepter les erreurs de décodage JSON :
$json_string = '{"name":"John","age":30,"city":"New York","}'; try { $php_array = json_decode($json_string, true, 512, JSON_THROW_ON_ERROR); print_r($php_array); } catch (JsonException $e) { echo 'JSON解码错误:', $e->getMessage(); }
Dans le code ci-dessus, l'option JSON_THROW_ON_ERROR et le bloc try-catch sont utilisés pour intercepter l'exception d'erreur JSON. Si la chaîne JSON n'est pas valide, une JsonException sera levée.
De plus, les opérations curl et les requêtes Guzzle peuvent être encapsulées dans des fonctions, et la gestion des erreurs et des exceptions est incluse. Cela rendra le code plus facile à gérer et à réutiliser.
Résumé
Obtenir des tableaux JSON est une partie importante du développement Web moderne. La fonction json_decode() de PHP peut facilement convertir les chaînes JSON en tableaux PHP, tandis que des bibliothèques telles que curl et Guzzle peuvent obtenir des données JSON à partir d'autres sites Web. Bien que ces méthodes soient simples et faciles à utiliser, une attention particulière doit être accordée à la gestion des erreurs et des exceptions lors de l'obtention de données JSON.
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!