json_decode

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

json_decodeDécode une chaîne JSON

Description

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

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

Liste de paramètres

json

La chaîne json à décoder.

Cette fonction ne traite qu'avec des chaînes encodées avec UTF-8.

Note:

PHP implémente un sur-ensemble de JSON tel que spécifié dans la » RFC 7159 originale.

assoc

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

depth

Définit la profondeur de récursion.

options

Un masque d'options JSON decode. Actuellement, seul JSON_BIGINT_AS_STRING est supporté (par défaut, les gros entiers sont convertis en nombres à virgule flottante)

Valeurs de retour

Retourne la valeur encodée dans le paramètre json dans le type PHP approprié. Les valeurs true, false et null sont retournées respectivement comme TRUE, FALSE et NULL. NULL est retourné si le paramètre json n'a pu être décodé ou si les données encodées sont plus profondes que la limite de récursion fournie.

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 Accès à des propriétés d'objet invalides

Accéder à des éléments d'un objet qui contiennent des caractères non permis par la convention de nommage de PHP (i.e. le trait d'union) peut être effectué en encapsulant le nom de l'élément avec des crochets et des apostrophes.

<?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 entourés de guillemets doubles.
// Les guillemets simples ne sont pas valides.
$bad_json "{ 'bar': 'baz' }";
json_decode($bad_json); // null

// Le nom doit être entouré de guillemets doubles.
$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

?>

Exemple #4 Erreurs avec le paramètre depth

<?php
// Encodage dles données.
$json json_encode(
    array(
        
=>>json_decode($bad_span style="color: #0000BB">?>?&iscc&0pan>ebsp;$bad_span style="color: #0000BB">?>?&iscc&0pan>=>>jsocode$bad_span style="color: #0000BB">?>n style="color: #007700">= ($bad_span style="color: #0000BB">?>?&iscc&0pan>= ebsp;$bad_span style="color: #0000BB">?>?&iscc&0pan>=>>jsocodea   ispan styt;?php
<?php
(
(<>;
$json= (=&nbforeachyan st style="color: #007700">;
es
(<">(
(<
dd> an style="color: #0000BB">$json(
<$json
));
">json_decode
ERROR_sp;($json"color{  "coloryle="color: #007700">(
<
styledd> bar: "baz", }'<><dd> an style="color: #0000BB">$json(<>">json_decode;  } }span style="color: #007700">, ?>yle="color;?php
<?php
;
$json));
(($json(<v class style="color: #0000BB">$json=>>jsocospan>$json));
var_dump(json_decode(json_decode
<v class style="color: #0000BB">$json=  php
$n style="color: #0000BB">json_decode
< styledd> bar: "baz", }'
<>< tyle="color: #0000BB">var_dump)]<json_decode<json_decode; }span st$bad_json); ));

?>

L&: #0001t(2) [1]tyle=) : #0002t(2) ["/span><1) tyle=) : #0002t(2) 0 tyle=) > ERROR_NONE TRUE Derni> ERROR_DEPTH => int(2) ["c"] => int(3) ["d"] => 42"color: #0000BB">?>Exemples

Exemple #4 Erreurs avec le paramètre depth


'{"a":1,"b":2,"c":3,"d":4,"e":5}';

var_dump($json'{"a":1,"b":2,"c":3,"d":4,"e":5}';

var_dump($json<$json<$json<

$json); ));

?>

L'exemple ci-dess1t(2) [1) numbep1) tyle=) float(1.br /67890 class="para"> Cette fonction ne traite qu'avec des chacursion.

Laote">

yle=riétés d&sous-ect> tckquo"http://fomme Cette fonction ne traite qu'avec des chacursion.

Si> uNage,div class="e [emples