json_decode Decodes a JSON string &reftitle.description; mixedjson_decode stringjson boolassocfalse intdepth512 intoptions0 Takes a JSON encoded string and converts it into a PHP variable. &reftitle.parameters; json The json string being decoded. assoc When &true;, returned objects will be converted into associative arrays. depth User specified recursion depth. options Bitmask of JSON decode options. Currently only JSON_BIGINT_AS_STRING is supported (default is to cast large integers as floats) &version.trunk.after.53; &reftitle.returnvalues; Returns the value encoded in json in appropriate PHP type. Values true, false and null (case-insensitive) are returned as &true;, &false; and &null; respectively. &null; is returned if the json cannot be decoded or if the encoded data is deeper than the recursion limit. &reftitle.examples; <function>json_decode</function> examples ]]> &example.outputs; 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) } ]]> Another example {'foo-bar'}; // 12345 ?> ]]> common mistakes using <function>json_decode</function> ]]> <parameter>depth</parameter> errors array( 'English' => array( 'One', 'January' ), 'French' => array( 'Une', 'Janvier' ) ) ) ); // Define the errors. $json_errors = array( JSON_ERROR_NONE => 'No error has occurred', JSON_ERROR_DEPTH => 'The maximum stack depth has been exceeded', JSON_ERROR_CTRL_CHAR => 'Control character error, possibly incorrectly encoded', JSON_ERROR_SYNTAX => 'Syntax error', ); // Show the errors for different depths. foreach(range(4, 3, -1) as $depth) { var_dump(json_decode($json, True, $depth)); echo 'Last error : ', $json_errors[json_last_error()], PHP_EOL, PHP_EOL; } ?> ]]> &example.outputs; array(2) { ["English"]=> array(2) { [0]=> string(3) "One" [1]=> string(7) "January" } ["French"]=> array(2) { [0]=> string(3) "Une" [1]=> string(7) "Janvier" } } } Last error : No error has occurred NULL Last error : The maximum stack depth has been exceeded ]]> <function>json_decode</function> of large integers ]]> &example.outputs; &reftitle.notes; The JSON spec is not JavaScript, but a subset of JavaScript. In the event of a failure to decode, json_last_error can be used to determine the exact nature of the error. &reftitle.changelog; &Version; &Description; &version.trunk.changelog; The options parameter was added. 5.3.0 Added the optional depth. The default recursion depth was increased from 128 to 512 5.2.3 The nesting limit was increased from 20 to 128 &reftitle.seealso; json_encode json_last_error