Fonctions JSON
PHP Manual

json_decode

(PHP 5 >= 5.2.0, PECL json >= 1.2.0)

json_decodeDécode une chaîne JSON

Description

mixed json_decode ( string $json [, bool $assoc= false [, int $depth= 512 ]] )

Récupère une chaîne encodée JSON et la convertie en une variable PHP.

Liste de paramètres

json

La chaîne json à décoder.

assoc

Lorsque ce paramètre vaut TRUE, l'objet retourné sera converti en un tableau associatif.

depth

Limite de profondeur d'imbrication.

Valeurs de retour

Retourne un objet ou, si le paramètre optionnel assoc vaut TRUE, un tableau associatif.

Exemples

Exemple #1 Exemple avec json_decode()

<?php
$json 
'{"a":1,"b":2,"c":3,"d":4,"e":5}';

var_dump(json_decode($json));
var_dump(json_decode($jsontrue));

?>

L'exemple ci-dessus va afficher :

object(stdClass)#1 (5) {
    ["a"] => int(1)
    ["b"] => int(2)
    ["c"] => int(3)
    ["d"] => int(4)
    ["e"] => int(5)
}

array(5) {
    ["a"] => int(1)
    ["b"] => int(2)
    ["c"] => int(3)
    ["d"] => int(4)
    ["e"] => int(5)
}

Exemple #2 Autre exemple avec json_decode()

<?php

$json 
'{"foo-bar": 12345}';

$obj json_decode($json);
print 
$obj->{'foo-bar'}; // 12345

?>

Exemple #3 Erreurs habituelles lors de l'utilisation de la fonction json_decode()

<?php

// Les chaînes suivantes sont valides en JavaScript mais pas en JSON

// Le nom et la valeur doivent être entourrés de double-guillemets.
// Les simple-guillements ne sont pas valides
$bad_json "{ 'bar': 'baz' }";
json_decode($bad_json); // null

// le nom doit être entourré de double-guillemets
$bad_json '{ bar: "baz" }';
json_decode($bad_json); // null

// la virgule de fin n'est pas autorisée
$bad_json '{ bar: "baz", }';
json_decode($bad_json); // null

?>

Notes

Note: La spécification JSON ne fait pas partie de Javascript mais d'un sous-projet de Javascript.

Attention

Cette fonction retournera FALSE si les données encodées JSON sont plus profondes que 127 éléments.

Historique

Version Description
5.3.0 Ajout du paramètre optionnel depth
5.2.3 La limite a été élevée de 20 à 128

Voir aussi


Fonctions JSON
PHP Manual