json_encode Retourne la représentation JSON d'une valeur &reftitle.description; stringfalsejson_encode mixedvalue intflags0 intdepth512 Retourne une chaîne de caractères contenant la représentation JSON de la valeur value. Si le paramètre est un &array; ou un &object;, il sera sérialisé de manière récursive. Si l'une des valeurs à sérialiser est un objet, alors par défaut seules les propriétés visibles publiquement seront incluses. Une classe peut également implémenter JsonSerializable pour contrôler la façon dont ses valeurs sont sérialisées en JSON. L'encodage est affecté par les flags fournies. De plus, l'encodage des valeurs flottantes dépend de la valeur de serialize_precision. &reftitle.parameters; value La valeur à encoder. Peut-être de n'importe quel type, excepté une &resource;. Toutes les chaînes doivent être encodées UTF-8. &json.implementation.superset; flags Masque de bit compris de JSON_FORCE_OBJECT, JSON_HEX_QUOT, JSON_HEX_TAG, JSON_HEX_AMP, JSON_HEX_APOS, JSON_INVALID_UTF8_IGNORE, JSON_INVALID_UTF8_SUBSTITUTE, JSON_NUMERIC_CHECK, JSON_PARTIAL_OUTPUT_ON_ERROR, JSON_PRESERVE_ZERO_FRACTION, JSON_PRETTY_PRINT, JSON_UNESCAPED_LINE_TERMINATORS, JSON_UNESCAPED_SLASHES, JSON_UNESCAPED_UNICODE, JSON_THROW_ON_ERROR. Le comportement de ces constantes est décrit sur la page des constantes JSON. depth Définit la profondeur maximale. Doit être supérieur à zéro. &reftitle.returnvalues; Retourne un JSON encodé en tant que &string; en cas de succès &return.falseforfailure;. &reftitle.changelog; &Version; &Description; 7.3.0 Le flags JSON_THROW_ON_ERROR a été ajoutée. 7.2.0 Les flags JSON_INVALID_UTF8_IGNORE, et JSON_INVALID_UTF8_SUBSTITUTE ont été ajoutées. 7.1.0 Le flags JSON_UNESCAPED_LINE_TERMINATORS a été ajoutée. 7.1.0 serialize_precision est utilisé à la place de precision lors de l'encodage de valeurs float. &reftitle.examples; Exemple avec <function>json_encode</function> 1, 'b' => 2, 'c' => 3, 'd' => 4, 'e' => 5); echo json_encode($arr); ?> ]]> &example.outputs; Exemple avec <function>json_encode</function> montrant quelques drapeaux en action ',"'bar'",'"baz"','&blong&', "\xc3\xa9"); echo "Normal : ", json_encode($a), "\n"; echo "Tags : ", json_encode($a, JSON_HEX_TAG), "\n"; echo "Apos : ", json_encode($a, JSON_HEX_APOS), "\n"; echo "Quot : ", json_encode($a, JSON_HEX_QUOT), "\n"; echo "Amp : ", json_encode($a, JSON_HEX_AMP), "\n"; echo "Unicode : ", json_encode($a, JSON_UNESCAPED_UNICODE), "\n"; echo "Toutes : ", json_encode($a, JSON_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($b, JSON_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($c, JSON_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($d, JSON_FORCE_OBJECT), "\n\n"; ?> ]]> &example.outputs; ","'bar'","\"baz\"","&blong&","\u00e9"] Tags : ["\u003Cfoo\u003E","'bar'","\"baz\"","&blong&","\u00e9"] Apos : ["","\u0027bar\u0027","\"baz\"","&blong&","\u00e9"] Quot : ["","'bar'","\u0022baz\u0022","&blong&","\u00e9"] Amp : ["","'bar'","\"baz\"","\u0026blong\u0026","\u00e9"] Unicode : ["","'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 avec l'option JSON_NUMERIC_CHECK ]]> &example.outputs.similar; string(7) "+123123" [1]=> string(7) "-123123" [2]=> string(5) "1.2e3" [3]=> string(7) "0.00001" } string(28) "[123123,-123123,1200,1.0e-5]" Chaînes contenant des nombres non formattés proprement array(2) { [0]=> string(13) "+a33123456789" [1]=> string(4) "a123" } string(24) "["+a33123456789","a123"]" ]]> Exemple avec un tableau séquentiel et un tableau non-séquentiel "foo", 2=>"bar", 3=>"baz", 4=>"blong"); var_dump( $nonsequential, json_encode($nonsequential) ); echo PHP_EOL."Tableau séquentiel avec une clé supprimée".PHP_EOL; unset($sequential[1]); var_dump( $sequential, json_encode($sequential) ); ?> ]]> &example.outputs; 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 une clé supprimée array(3) { [0]=> string(3) "foo" [2]=> string(3) "baz" [3]=> string(5) "blong" } string(33) "{"0":"foo","2":"baz","3":"blong"}" ]]> Exemple avec l'option <constant>JSON_PRESERVE_ZERO_FRACTION</constant> ]]> &example.outputs; &reftitle.notes; 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. 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. Tout comme l'encodeur JSON de référence, la fonction json_encode génèrera un JSON qui est une valeur simple (ni un objet, ni un tableau) si une &string;, un &integer;, un &float;, ou un &boolean; est fourni en entrée pour le paramètre value. Bien que certains décodeurs acceptent ces valeurs comme JSON valide, d'autres ne les acceptent pas, sachant que la spécification est ambiguë sur ce point. Pour résumer, testez toujours que votre décodeur JSON peut gérer la sortie que vous générez depuis la fonction json_encode. &reftitle.seealso; JsonSerializable json_decode json_last_error json_last_error_msg serialize