JSON

Fonction json_encode() :

Voici une variable de tableau :
$age = array("Peter"=>35, "Ben"=>37, "Joe"=>43);

Et voici son type :
array(3) { ["Peter"]=> int(35) ["Ben"]=> int(37) ["Joe"]=> int(43) }

Cette varaible est alors encodée en json :
$jsonage = json_encode($age) ;
Et voici le type de cet encodage json :
string(30) "{"Peter":35,"Ben":37,"Joe":43}"
On remarque que le type n'est pas JSON mais plutôt un string

Fonction json_decode() :

On peut alors tenter de le décoder :
$decodjsonage = json_decode($jsonage);

Voici à quoi il ressemble :
stdClass Object ( [Peter] => 35 [Ben] => 37 [Joe] => 43 )
Voici comment on accède à un de ses élément :
echo $decodjsonage->Peter;
35

Et voici le type de l'objet décodé :
object(stdClass)#1 (3) { ["Peter"]=> int(35) ["Ben"]=> int(37) ["Joe"]=> int(43) }
On remarque que le type n'est plus un string ni même un array.. mais plutôt un objet..

En fait, on aurait pu récupérer un tableau associatif en ajoutant un 2ème argument à la fonction json_decode() :
$decodjsonage = json_decode($jsonage,true);

Voici à quoi il ressemble :
Array ( [Peter] => 35 [Ben] => 37 [Joe] => 43 )
Et voici son type :
array(3) { ["Peter"]=> int(35) ["Ben"]=> int(37) ["Joe"]=> int(43) }
Cette fois ci, on a bien récupéré un array associatif de la fonction json_decode()

On peut biensûr lire tout son contenu à l'aide de l'instruction foreach :
foreach($decodjsonage as $key => $value) {
echo $key . " est agé de : " . $value . " ans.";
}
Peter est agé de : 35 ans.
Ben est agé de : 37 ans.
Joe est agé de : 43 ans.


---------------------------------------------------------
Source : https://www.w3schools.com/php/php_json.asp

#?php