English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية

PHP JSON

L'utilisation courante du JSON est d'envoyer des données au serveur Web/Lire des données à partir du serveur Web et afficher les données dans une page Web.

Ce chapitre présente comment échanger des données JSON entre le client et le serveur PHP.

Fonctions JSON PHP

PHP5.2.0 et versions supérieures ont des extensions JSON intégrées.

PHP dispose des fonctions intégrées suivantes pour traiter le JSON :

FonctionDescription
json_encode()Retourne la représentation JSON de la valeur
json_decode()Analyser une chaîne JSON
json_last_error()Retourne l'erreur la plus récente

Fonction json_encode()

Il est possible de convertir un objet PHP en JSON en utilisant la fonction PHP json_encode().

Le fichier donné par json_demo1.php enregistré :

  <?php
  $myObj = new stdClass();
  $myObj->name = "Seagull";
  $myObj->age =; 22;
  $myObj->city = "New Delhi";
  $myJSON = json_encode($myObj);  /* Convertir un objet PHP en chaîne JSON */
  
  echo $myJSON;
  ?>

Voici un exemple tiré de l'exemple précédent en demandant un fichier PHP (json_demo1.php), puis utiliser JSON.parse() pour convertir la réponse en objet JavaScript :

var httpRequest = new XMLHttpRequest();
httpRequest.onreadystatechange = function() {
   if (this.readyState === 4 && this.status === 200) {
      var myObj = JSON.parse(this.responseText); // Convertir une chaîne JSON en Objet
      document.getElementById("output").innerHTML = myObj.name;
   }
});
httpRequest.open("GET", "json_demo1.php", true);
httpRequest.send();
Vérifiez le test‹/›

En utilisant la fonction PHP, le tableau PHP est également converti en JSON json_encode().

Le fichier donné par json_demo2.php enregistré :

  <?php
  $myArr = array("Seagull", "Cynthia", "Tarush");
  $myJSON = json_encode($myArr);  /* Convertir un tableau PHP en chaîne JSON */
  
  echo $myJSON;
  ?>

Voici un exemple tiré de l'exemple précédent (json_demo2Demander un fichier PHP (.php) et utiliser JSON.parse() pour convertir la réponse en tableau JavaScript :

var httpRequest = new XMLHttpRequest();
httpRequest.onreadystatechange = function() {
   if (this.readyState === 4 && this.status === 200) {
      var myArr = JSON.parse(this.responseText); // Convertir une chaîne JSON en tableau
      document.getElementById("output").innerHTML = myArr[0];
   }
});
httpRequest.open("GET", "json_demo2.php", true);
httpRequest.send();
Vérifiez le test‹/›

Fonction json_decode()

Une chaîne JSON peut être convertie en objet PHP en utilisant la fonction json_decode().

Le fichier donné est sauvegardé par json_demo.php :

  <?php
  $q = $_REQUEST["q"];  // Obtenir le paramètre q de l'URL
  $obj = json_decode($q, false); // Convertir une chaîne JSON en objet PHP
  echo $obj->name."居住在 ".$obj->city.".";
  ?>

Les exemples suivants convertissent un objet JavaScript en chaîne JSON et l'envoient au serveur (demo_json.php) :

var myObj = {name: "Seagull", age: 22, city: "New Delhi"};
var myJSON = JSON.stringify(myObj);
window.location = "json_demo.php?q=" + myJSON;
Vérifiez le test‹/›

Il est possible d'utiliser la fonction pour convertir une chaîne JSON en tableau PHP json_decode().

<?php
$q = $_REQUEST["q"];  //Obtenir le paramètre q de l'URL
$arr = json_decode($q, true); // Convertir une chaîne JSON en tableau PHP
echo $arr["name"]."居住在 ".$arr["city"].".";
?>