JSON – array / Objets : Quelques fonctions PHP utiles

Convertir du JSON en array, des objets en JSON, des array en JSON, des array en OBJET… Bref quelques fonctions pour traiter le JSON, les array et les objets.

JSON (JavaScript Object Notation) est un format de données textuelle. Il permet, comme le XML, de faire communiquer ensemble des langages et notamment JavaScript et PHP qui sont tous deux respectivement des langages client et serveur. (Bien que Node.js change la donne pour le JS). Retrouver quelques fonctions bien utiles pour vous aider dans les interactions entre le JSON, les objets et les tableaux avec PHP. De quoi faire des conversions dans tous les sens !

 

Convertir un array en Objet

Ici la fonction est simple, on utilise des fonctions natives en PHP, notamment la fonction json_decode.

/*--- DEBUT ---*/

function arrayToObject($array) {

$object = json_decode(json_encode($array), FALSE);
return $object;

}

/*--- FIN ---*/

 

Convertir un array en JSON

Idem, la fonction json_encode nous permet ici de convertir notre tableau PHP au format JSON. Notez la présence de JSON_FORCE_OBJECT dans le json_encode.

/*--- DEBUT ---*/

function arrayToJSON($array) {
$json = json_encode($array, JSON_FORCE_OBJECT);
return $json;
}

/*--- FIN ---*/

 

Convertir un Objet en JSON

Ici la fonction est un peu plus (à peine) compliquée que les deux précédentes. Notamment, on récupère l’objet PHP, puis on utilise la fonction get_object_vars qui retourne les propriétés d’un objet.

/*--- DEBUT ---*/

function objectToJSON($object) {
$properties = get_object_vars($object);
foreach($properties as &$value){
if(is_object($value) && method_exists($value,'getJsonData')){
$value = $value->getJsonData();
}
}
return json_encode($properties);
}

/*--- FIN ---*/

Convertir un JSON en array

Notez ici la présence de « true » dans json_decode.

/*--- DEBUT ---*/

function JSONToArray($json) {
$array = json_decode($json, true);
return $array;
}

/*--- FIN ---*/

 

N’hésitez pas à me faire des retours, rien n’est jamais parfait et on peut toujours tout améliorer ensemble :). J’espère que cela en aidera quelques uns !

Surtout n’hésitez pas à laisser des commentaires ou à proposer quelques thèmes qui vous seraient utiles.

Publié le : 13 juin 2015

Articles relatifs