PHP:
Travailler avec JSON

Comment faire :

Travailler avec JSON en PHP est simple grâce aux fonctions intégrées json_encode() et json_decode(). Ci-dessous se trouvent des exemples montrant comment convertir un tableau PHP en chaîne JSON, et inversement :

Encodage d’un tableau PHP en chaîne JSON

// Définir un tableau associatif
$data = [
    "name" => "John Doe",
    "age" => 30,
    "email" => "[email protected]"
];

// Convertir le tableau PHP en chaîne JSON
$jsonString = json_encode($data);

// Afficher la chaîne JSON
echo $jsonString;

Exemple de sortie :

{"name":"John Doe","age":30,"email":"[email protected]"}

Décodage d’une chaîne JSON en tableau PHP

// Chaîne JSON
$jsonString = '{"name":"John Doe","age":30,"email":"[email protected]"}';

// Convertir la chaîne JSON en tableau PHP
$data = json_decode($jsonString, true);

// Afficher le tableau PHP
print_r($data);

Exemple de sortie :

Array
(
    [name] => John Doe
    [age] => 30
    [email] => [email protected]
)

Travailler avec une bibliothèque tierce : GuzzleHttp

Pour une gestion complexe des requêtes web et des données JSON, une bibliothèque PHP populaire est GuzzleHttp. Elle simplifie les requêtes HTTP et fonctionne facilement avec les données JSON.

Installation via Composer :

composer require guzzlehttp/guzzle

Exemple de requête :

require 'vendor/autoload.php';

use GuzzleHttp\Client;

$client = new Client();

// Envoyer une requête à une API qui retourne du JSON
$response = $client->request('GET', 'https://api.example.com/data', [
    'headers' => [
        'Accept' => 'application/json',
    ],
]);

// Décoder la réponse JSON en tableau PHP
$data = json_decode($response->getBody(), true);

// Afficher les données
print_r($data);

En supposant que l’API renvoie des données JSON similaires :

Array
(
    [name] => John Doe
    [age] => 30
    [email] => [email protected]
)

Cela illustre la facilité d’utilisation de PHP pour la manipulation de JSON, à la fois avec les fonctions natives et avec des bibliothèques robustes comme GuzzleHttp pour des tâches plus complexes.