Dynamic-Mess.com


"The world is a dynamic mess of jiggling things..."

PHP : encoder et récuperer des données au format jSON

Article posté le 17-10-2014 dans la catégorie PHP

Voici un petit rappel sur comment encoder des données au format jSON avec PHP.

1- Introduction

On peut se contenter d'afficher la chaine construite manuellement au format jSON, par exemple :

$maVar = '[{"titre":"1"},{"titre":"2"}]'; //Deux objets

Là pas besoin d'encodage...

Mais dans le cas où l'on veut manipuler beaucoup de données, sachez qu'un objet jSON est au départ un tableau, dans le cas de PHP. Il faudra donc le convertir en chaine jSON. Il en est de même si vous retournez un tableau d'objets.

Exemple ici, avec un tableau contenant trois objets:

$maVar = array(
        array(
            "titre" => "valeurA"
        ),
        array(
            "titre" => "valeurB"
        ),
        array(
            "titre" => "valeurC"
        )
    );
    
    echo json_encode($maVar);

2- Exemple complet

Côté serveur qui génère le JSON:

$result =Array
(
    'Id' => '99',
    'Message' => 'blabla'
);
//header('Content-Type: application/json');
header('Content-type:application/json;charset=utf-8'); // Précise le type de données + l'encodage
echo json_encode($result);

 

Côté récupération des données

$url = 'http://test.dev/toto.php';

La récupération des données peut se faire de 2 manières, tout dépend des paramétrages de votre serveur

Soit :

$result = file_get_contents($url);

Soit:

$ch = curl_init();
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_HTTPHEADER, array(
    'Content-Type: application/json',
    'Accept: application/json'
));
$result = curl_exec($ch);
curl_close($ch);

Dans les deux cas, il suffit ensuite de décoder et manipuler les données:

$json = json_decode($result, true);
echo $json['Message'];

 

 

 

 

 


Tweet
comments powered by Disqus