json_decode Decodifica un string de JSON &reftitle.description; mixedjson_decode stringjson boolassocfalse intdepth512 intoptions0 Convierte un string codificado en JSON a una variable de PHP. &reftitle.parameters; json El string de json a decodificar. Esta función sólo trabaja con string codificados en UTF-8. &json.implementation.superset; assoc Cuando es &true;, los object devueltos serán convertidos a array asociativos. depth Profundidad de recursividad especificada por el usuario. options Máscara de bit de opciones de decodificación de JSON. Actualmente solamente está soportada JSON_BIGINT_AS_STRING (por defecto, convierte enteros grandes en valores de tipo float) &reftitle.returnvalues; Devuelve el valor codificado en json en un tipo de PHP apropiado. Los valores true, false y null son devueltos como &true;, &false; y &null; respectivamente. &null; es devuelto si el parámetro json no se puede decodificar o si los datos codificados son más profundos que el límite de recursividad. &reftitle.examples; Ejemplos de <function>json_decode</function> ]]> &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) } ]]> Acceder a propiedades de objeto no válidas Se puede acceder a elementos de un objeto que contienen caracteres no permitidos por la convención de nombres de PHP (p.ej., el guión) encapsulando el nombre del elemento entre llaves y apóstrofe. {'foo-bar'}; // 12345 ?> ]]> Errores comunes al usar <function>json_decode</function> ]]> Errores con <parameter>depth</parameter> array( 'Inglés' => array( 'One', 'January' ), 'Francés' => array( 'Une', 'Janvier' ) ) ) ); // Definir los errores. $constantes = get_defined_constants(true); $errores_json = array(); foreach ($constantes["json"] as $nombre => $valor) { if (!strncmp($nombre, "JSON_ERROR_", 11)) { $errores_json[$valor] = $nombre; } } // Mostrar los errores para diferentes profundidades. foreach (range(4, 3, -1) as $profundidad) { var_dump(json_decode($json, true, $profundidad)); echo 'Último error: ', $errores_json[json_last_error()], PHP_EOL, PHP_EOL; } ?> ]]> &example.outputs; array(2) { ["Inglés"]=> array(2) { [0]=> string(3) "One" [1]=> string(7) "January" } ["Francés"]=> array(2) { [0]=> string(3) "Une" [1]=> string(7) "Janvier" } } } Último error: JSON_ERROR_NONE NULL Último error: JSON_ERROR_DEPTH ]]> <function>json_decode</function> de enteros grandes ]]> &example.outputs; float(1.2345678901235E+19) } object(stdClass)#1 (1) { ["number"]=> string(20) "12345678901234567890" } ]]> &reftitle.notes; La especificación de JSON no es JavaScript, pero sí un subconjunto de JavaScript. En el caso de ocurrir un error durante la decodificación, se puede usar json_last_error para determinar la naturaleza exacta del mismo. &reftitle.changelog; &Version; &Description; 5.6.0 Ya no se aceptan variantes que no estén en minúsculas de los literales true, false y null como entradas válidas, por lo que se generarán advertencias. 5.4.0 Se añadió el parámetro options. 5.3.0 Se añadió el parámetro opcional depth. La profundidad de recursividad predeterminada se aumentó de 128 a 512 5.2.3 La profundidad de recursividad predeterminada se aumentó de 20 a 128 5.2.1 Se añadió soporte para la decodificación de JSON de tipos básicos. &reftitle.seealso; json_encode json_last_error