Programmation PHP/JSON

Un livre de Wikilivres.
Sauter à la navigation Sauter à la recherche


Bibliothèque PHP-JSON[modifier | modifier le wikicode]

Le format de données JavaScript Object Notation (JSON) peut être utilisé en PHP grâce à différentes fonctions natives depuis PHP 5.2.0.

Installation (pour PHP < 5.2)[modifier | modifier le wikicode]

Linux[modifier | modifier le wikicode]

apt-get install php5-json

Windows[modifier | modifier le wikicode]

  1. Télécharger le fichier json-1.2.1.tgz sur https://pecl.php.net/package/json.
  2. Décompresser et compiler le code source en json.so.
  3. Le copier dans le dossier des extensions PHP.
  4. Dans le php.ini (ex : C:\Program Files (x86)\EasyPHP\binaries\php\php_runningversion\php.ini), ajouter :
extension=json.so

json_encode()[modifier | modifier le wikicode]

Cette fonction convertit un objet PHP en JSON exploitable en JavaScript[1]. Ex :

$tableau = array('colonne 1' => 'valeur 1', 'colonne 2' => 'valeur 2', 'colonne 3' => 'valeur 3');
echo json_encode($tableau);
{"colonne 1":"valeur 1","colonne 2":"valeur 2","colonne 3":"valeur 3"}

Logo json_encode() sur une instance de classe n'en n'affiche que les attributs publics. Pour encoder les privés, il faut que la classe implémente JsonSerializable en qui impose une méthode jsonSerialize()[2]. Ex :

    public function jsonSerialize() {
        return $this->array;
    }


json_decode()[modifier | modifier le wikicode]

Convertit une chaine de caractères JSON en :

  • Si aucun paramètre 2 n'est passé, un objet PHP dont chaque attribut correspond à une clé du tableau.
  • Si le paramètre 2 vaut "true", un tableau associatif[3].

PEAR Services_JSON[modifier | modifier le wikicode]

Le framework PEAR possède aussi un package Services_JSON contenant des .php avec des exemples, à télécharger en tant que JSON.tar.gz sur http://pear.php.net/pepr/pepr-proposal-show.php?id=198.

Logo Il requiert PHPUnit.phpTélécharger.



La classe Services_JSON de JSON.php peut s'utiliser comme décrit dans Test-JSON.php.

Références[modifier | modifier le wikicode]