Fonctions JSON
PHP Manual

json_encode

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

json_encodeRetourne le représentation JSON d'une valeur

Description

string json_encode ( mixed $value [, int $options = 0 ] )

Retourne une chaîne contenant la représentation JSON de la valeur value.

Liste de paramètres

value

La valeur à encoder. Peut être de n'importe quel type, excepté une ressource.

Cette fonction ne fonctionne qu'avec des données encodées UTF-8.

options

Masque composé des constantes JSON_HEX_QUOT, JSON_HEX_TAG, JSON_HEX_AMP, JSON_HEX_APOS, JSON_NUMERIC_CHECK, JSON_PRETTY_PRINT, JSON_UNESCAPED_SLASHES, JSON_FORCE_OBJECT, JSON_UNESCAPED_UNICODE.

Valeurs de retour

Retourne une chaîne encodé JSON ou FALSE si une erreur survient.

Historique

Version Description
5.4.0 Les options JSON_PRETTY_PRINT, JSON_UNESCAPED_SLASHES et JSON_UNESCAPED_UNICODE ont été ajoutées.
5.3.3 L'option JSON_NUMERIC_CHECK a été ajoutée.
5.3.0 Le paramètre options a été ajouté.

Exemples

Exemple #1 Exemple avec json_encode()

<?php
$arr 
= array('a' => 1'b' => 2'c' => 3'd' => 4'e' => 5);

echo 
json_encode($arr);
?>

L'exemple ci-dessus va afficher :

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

Exemple #2 Exemple avec json_encode() montrant toutes les options

<?php
$a 
= array('<foo>',"'bar'",'"baz"','&blong&'"\xc3\xa9");

echo 
"Normal : ",  json_encode($a), "\n";
echo 
"Tags : ",    json_encode($aJSON_HEX_TAG), "\n";
echo 
"Apos : ",    json_encode($aJSON_HEX_APOS), "\n";
echo 
"Quot : ",    json_encode($aJSON_HEX_QUOT), "\n";
echo 
"Amp : ",     json_encode($aJSON_HEX_AMP), "\n";
echo 
"Unicode : "json_encode($aJSON_UNESCAPED_UNICODE), "\n";
echo 
"Toutes : ",     json_encode($aJSON_HEX_TAG JSON_HEX_APOS JSON_HEX_QUOT JSON_HEX_AMP JSON_UNESCAPED_UNICODE), "\n\n";

$b = array();

echo 
"Tableau vide sous forme de tableau : "json_encode($b), "\n";
echo 
"Tableau vide sous forme d'objet : "json_encode($bJSON_FORCE_OBJECT), "\n\n";

$c = array(array(1,2,3));

echo 
"Tableau non-associatif sous forme de tableau : "json_encode($c), "\n";
echo 
"Tableau non-associatif sous forme d'objet : "json_encode($cJSON_FORCE_OBJECT), "\n\n";


$d = array('foo' => 'bar''baz' => 'long');

echo 
"Tableau associatif affiché comme objet: "json_encode($d), "\n";
echo 
"Tableau associatif affiché comme objet: "json_encode($dJSON_FORCE_OBJECT), "\n\n";
?>

L'exemple ci-dessus va afficher :

Normal : ["<foo>","'bar'","\"baz\"","&blong&","\u00e9"]
Tags : ["\u003Cfoo\u003E","'bar'","\"baz\"","&blong&","\u00e9"]
Apos : ["<foo>","\u0027bar\u0027","\"baz\"","&blong&","\u00e9"]
Quot : ["<foo>","'bar'","\u0022baz\u0022","&blong&","\u00e9"]
Amp : ["<foo>","'bar'","\"baz\"","\u0026blong\u0026","\u00e9"]
Unicode : ["<foo>","'bar'","\"baz\"","&blong&","é"]
Toutes : ["\u003Cfoo\u003E","\u0027bar\u0027","\u0022baz\u0022","\u0026blong\u0026","é"]

Tableau vide sous forme de tableau : []
Tableau vide sous forme d'objet : {}

Tableau non-associatif sous forme de tableau : [[1,2,3]]
Tableau non-associatif sous forme d'objet : {"0":{"0":1,"1":2,"2":3}}

Tableau associatif affiché comme objet: {"foo":"bar","baz":"long"}
Tableau associatif affiché comme objet: {"foo":"bar","baz":"long"}

Exemple #3 Exemple avec un tableau séquentiel et un tableau non-séquentiel

<?php
echo "Tableau séquentiel".PHP_EOL;
$sequential = array("foo""bar""baz""blong");
var_dump(
 
$sequential,
 
json_encode($sequential)
);

echo 
PHP_EOL."Tableau non-séquentiel".PHP_EOL;
$nonsequential = array(1=>"foo"2=>"bar"3=>"baz"4=>"blong");
var_dump(
 
$nonsequential,
 
json_encode($nonsequential)
);

echo 
PHP_EOL."Tableau séquentiel avec un clé supprimé".PHP_EOL;
unset(
$sequential[1]);
var_dump(
 
$sequential,
 
json_encode($sequential)
);
?>

L'exemple ci-dessus va afficher :

Tableau séquentiel
array(4) {
  [0]=>
  string(3) "foo"
  [1]=>
  string(3) "bar"
  [2]=>
  string(3) "baz"
  [3]=>
  string(5) "blong"
}
string(27) "["foo","bar","baz","blong"]"

Tableau non-séquentiel
array(4) {
  [1]=>
  string(3) "foo"
  [2]=>
  string(3) "bar"
  [3]=>
  string(3) "baz"
  [4]=>
  string(5) "blong"
}
string(43) "{"1":"foo","2":"bar","3":"baz","4":"blong"}"

Tableau séquentiel avec un clé supprimé
array(3) {
  [0]=>
  string(3) "foo"
  [2]=>
  string(3) "baz"
  [3]=>
  string(5) "blong"
}
string(33) "{"0":"foo","2":"baz","3":"blong"}"

Notes

Note:

Lorsqu'une erreur survient lors de l'encodage, la fonction json_last_error() peut être utilisée pour déterminer la nature exacte de l'erreur.

Note:

Lors de l'encodage d'un tableau, si les clés ne sont pas sous la forme d'une séquence numérique continue commençant à 0, toutes les clés seront encodées sous forme de chaînes de caractères, et spécifiées explicitement pour chaque paire clé-valeur.

Voir aussi


Fonctions JSON
PHP Manual